Al principio debo mencionar que este problema solo ocurre en las aplicaciones de Windows Forms y el mismo programa en modo web, por ejemplo, con MVC3 funciona perfecto.Entity framework no guarda las entradas de datos en la base de datos
Hace algunos días escribí un programa de formulario de Windows muy simple utilizando Visual Studio 2010 ultimate con una base de datos SQL Express. Agregué la base de datos seleccionando Agregar> Nuevo elemento> Base de datos basada en servicios y un modelo de datos de entidad basado en esta base de datos de la misma manera. Usé Entity Framework para agregar algunos registros nuevos a las tablas. Ya había hecho algo así con VS 2008 SP1 sin problemas, así que hice lo mismo. El programa se compiló y ejecutó sin errores e ingresé algunos datos nuevos. Después de salir del programa volví a la base de datos y no sucedió nada. No se guardó ninguna información que ingresé. Depuro el programa paso a paso y todo estuvo bien. El siguiente código está relacionado con un programa muy simple con el problema mencionado. La base de datos tiene una tabla (libro):
namespace Book
{
public partial class BookForm : Form
{
BookDatabaseEntities db = new BookDatabaseEntities();
public BookForm()
{
InitializeComponent();
}
private void saveButton_Click(object sender, EventArgs e)
{
Book bookToCreate = new Book();
bookToCreate.Id = Guid.NewGuid();
bookToCreate.Title = titleTextBox.Text;
db.Books.AddObject(bookToCreate);
db.SaveChanges();
}
}
}
Estaré muy agradecido si alguien me ayuda. Gracias por adelantado.
.................
Después de la edición:
namespace Book
{
public partial class BookForm : Form
{
//BookDatabaseEntities db = new BookDatabaseEntities();
public BookForm()
{
InitializeComponent();
}
private void saveButton_Click(object sender, EventArgs e)
{
var db = new BookDatabaseEntities();
var bookToCreate = db.Books.CreateObject();
//Book bookToCreate = new Book();
bookToCreate.Id = Guid.NewGuid();
bookToCreate.Title = titleTextBox.Text;
db.AcceptAllChanges();
db.Books.AddObject(bookToCreate);
db.SaveChanges();
}
}
}
tratar de sustituir "nuevos db.Books();" con "db.Books.CreateObject();" –
Asegúrese de estar revisando la base de datos correcta. –
@Davide: utilicé CreateObject como dijo, pero el problema persiste. – Monoloox