实体框架未保存/停止重建数据库
本文关键字:重建 数据库 框架 保存 实体 | 更新日期: 2023-09-27 17:49:52
我正在使用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页面上给出的示例的几乎完全相同的副本。
这个问题看起来非常类似于在这个问题中发生的事情:实体框架实际上没有保存更改不幸的是,回答这个问题的人没有解释他们是如何解决这个问题的。他们解释说,他们检查了转到数据库的SQL,没有问题,经过一番调查,发现他们在项目中有一个数据库的副本,在重建数据库时,该副本覆盖了输出中的副本。我的问题是我不知道如何阻止这种情况的发生。你能帮忙吗?
我也看了:
- 实体框架保存上下文
- 实体框架:附属实体未保存
- 来自Google的许多页面。
所以我最终接受了上面的建议,创建了一个不幸的新项目,但没有成功。在谷歌上搜索了10个小时后,我找到了解决方案。我怀疑数据库正在重建。
若要防止重新构建数据库,请在解决方案资源管理器中右键单击该数据库,然后转到属性。在properties下找到属性Copy to output directory
并将其值更改为Do not copy
。
这实际上破坏了我的代码,因为数据库不在输出目录中。为了使程序再次工作,我必须手动将数据库的副本放在我的调试目录中。为了我的项目。在Windows 8和Visual Studio 2012中,它位于:
%UserProfile%'Documents'Visual Studio 2012'Projects'PROJECTNAME'PROJECTNAME'bin'Debug
希望这能让别人少花几个小时上网。