Inizialmente dovrei ricordare che questo problema si verifica solo nelle applicazioni Windows Form e lo stesso programma in modalità Web, ad esempio, con MVC3 funziona perfettamente.Il framework Entity non salva le voci di dati nel database
Alcuni giorni fa ho scritto un semplice programma di Windows form utilizzando Visual Studio 2010 ultimate con un database SQL Express. Ho aggiunto il database scegliendo Aggiungi> Nuovo elemento> Database basato sul servizio e un modello di dati dell'entità basato su questo database nello stesso modo. Ho usato il framework Entity per aggiungere nuovi record alle tabelle. Avevo fatto una cosa del genere con VS 2008 SP1 senza alcun problema quindi ho fatto lo stesso. Il programma è stato compilato e eseguito senza errori e ho inserito alcuni nuovi dati. dopo essere uscito dal programma sono tornato al database e non è successo nulla. Nessuna delle informazioni che avevo inserito era stata salvata. Eseguo il debug del programma passo dopo passo e tutto andava bene. Il seguente codice è correlato a un programma molto semplice con il problema menzionato. Database ha una tabella (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();
}
}
}
Sarò molto grato se qualcuno mi aiuta. Grazie in anticipo.
.................
Dopo la modifica:
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();
}
}
}
provare a sostituire "nuovo db.Books();" con "db.Books.CreateObject();" –
Assicurarsi di controllare il database corretto. –
@Davide: ho usato CreateObject come hai detto ma il problema esiste ancora. – Monoloox