3

我正在使用http://msdn.microsoft.com/en-us/data/jj591506上的教程自学实体框架。我正在使用下面的代码。

using (var db = new DatabaseEntities())
{
        var section = new Section
        {
            SectionID = 1,
            SectionName = "Bob"
        };
        db.Sections.Add(section);
        db.SaveChanges();
}

由于某种原因,此代码未写入我的数据库。没有错误被抛出。你有什么想法我可以看到或可能是什么原因?这是上面链接的 MSDN 页面上给出的示例的几乎完全相同的副本。

这个问题看起来非常类似于这个问题中发生的事情:Entity Framework not 实际上保存更改不幸的是回答这个问题的人没有解释他们是如何解决这个问题的。他们解释说,他们检查了转到数据库的 SQL,这很好,经过一番调查,结果证明他们在项目中有一个数据库副本,在重建时覆盖了输出中的那个副本. 我的问题是我不知道如何阻止这种情况的发生。你能帮我吗?

我也看过:

4

1 回答 1

3

所以我最终接受了上面的建议,不幸的是创建了一个新项目,但没有成功。10 个小时的谷歌搜索后,我找到了解决方案。我怀疑数据库正在重建。

要防止数据库被重建,请在解决方案资源管理器中右键单击它并转到属性。在属性下找到属性Copy to output directory并将值更改为Do not copy

这实际上破坏了我的代码,因为数据库不在输出目录中。为了让程序再次运行,我必须手动将数据库的副本放在我的调试目录中。对于我的项目。在带有 Visual Studio 2012 的 Windows 8 中,它位于:

%UserProfile%\Documents\Visual Studio 2012\Projects\PROJECTNAME\PROJECTNAME\bin\Debug

希望这可以节省其他人连续几个小时在 Internet 上搜索的时间。

于 2012-12-30T22:21:22.730 回答