实体框架不会将数据条目保存在数据库中

Mon*_*oox 5 .net savechanges visual-studio-2010 entity-framework-4 windows-applications

首先,我应该提到这个问题只发生在Windows窗体应用程序中,并且Web模式下的相同程序(例如MVC3)完美无缺.

几天前,我使用Visual Studio 2010终极版和SQL Express数据库编写了一个非常简单的Windows窗体程序.我通过选择添加>新项>基于服务的数据库和基于该数据库的实体数据模型以相同的方式添加数据库.我使用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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人帮助我,我将非常感激.提前致谢.

.................

编辑后:

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Mon*_*oox 3

最后,经过大量搜索和询问,我在 MSDN 论坛中找到了解决方案,感谢Patrice Scribe 你可以 在这里看到它