首先,我应该提到,此问题仅出现在Windows窗体应用程序中,并且在Web模式下的同一程序(例如与MVC3一起使用)可以完美运行。
几天前,我使用Visual Studio 2010 Ultimate和SQL Express数据库编写了一个非常简单的Windows窗体程序。我通过选择添加>新建项>基于服务的数据库和基于该数据库的实体数据模型以相同的方式添加了数据库。我使用 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();
}
}
}
最佳答案
最后,经过大量搜索和询问,我感谢Patrice Scribe在MSDN论坛中找到了解决方案
你可以看到
here