Вначале я должен упомянуть, что эта проблема возникает только в приложениях Windows Form, и та же самая программа в веб-режиме, например, с MVC3, прекрасно работает.
Несколько дней назад я написал очень простую программу для создания форм Windows, используя Visual Studio 2010 Ultimate с базой данных SQL Express. Я добавил базу данных, выбрав Add> New item> Service-Based database и модель данных сущности, основанную на этой базе данных таким же образом. Я использовал Entity Framework для добавления некоторых новых записей в таблицы. Я делал это с VS 2008 SP1 без проблем, поэтому я сделал то же самое. Программа скомпилирована и работает без ошибок, и я ввел некоторые новые данные. после выхода из программы я вернулся в базу данных и ничего не произошло. Никакая информация, которую я ввел, не была сохранена.
Я пошагово отлаживал программу и все было в порядке.
Код ниже относится к очень простой программе с указанной проблемой. База данных имеет одну таблицу (книгу):
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();
}
}
}
Я буду очень благодарен, если кто-нибудь поможет мне. Заранее спасибо.
.................
После редактирования:
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();
}
}
}