实体框架未保存/停止重建数据库

本文关键字:重建 数据库 框架 保存 实体 | 更新日期: 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

希望这能让别人少花几个小时上网。