实体框架不保存/停止正在重建的数据库

时间:2012-12-30 12:45:29

标签: c# entity-framework persistence

我正在使用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 actually saving changes不幸的是,回答此问题的人没有解释他们如何解决问题。他们解释说他们检查了SQL转到了数据库,经过一番调查后发现他们在项目中有一份数据库副本就好了,在重建时它超出了输出中的数据库。我的问题是我不知道如何阻止这种情况发生。你能帮忙吗?

我也看过:

1 个答案:

答案 0 :(得分:3)

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

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

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

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

希望这可以节省其他人在网上搜索几个小时。