首先我应该提到这个问题只发生在 Windows 窗体应用程序中,并且相同的程序在 Web 模式下例如使用 MVC3 工作完美。
几天前,我使用带有 SQL Express 数据库的 Visual Studio 2010 Ultimate 编写了一个非常简单的 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();
}
}
}
最佳答案
最后,经过大量搜索和询问,我在 MSDN 论坛中找到了解决方案,感谢 Patrice Scribe 你可以看到 here
关于.net - Entity Framework 不在数据库中保存数据条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7329167/