Сначала я должен сказать, что эта проблема возникает только в оконных формах приложений, и эта же программа в web-режиме, например, с MVC3 работает идеально.
Несколько дней назад я написал очень простую программу для работы с оконными формами, используя Visual Studio 2010 ultimate с базой данных SQL Express. Я добавил базу данных, выбрав Добавить > Новый пункт > Сервисная база данных и модель данных сущности на основе этой базы данных таким же образом. Я использовал фреймворк Entity для добавления некоторых новых записей в таблицы. Раньше я делал это с 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();
}
}
}
Я буду очень благодарен, если кто-нибудь мне поможет. Заранее спасибо.
.................
After editing:
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();
}
}
}