实体框架 6 从数据库更新忽略已删除的列、类型更改

Cod*_*nce 5 sql sql-server entity-framework

我在这里错过了什么吗?

我有一个 .net 4.5.1 项目,其中的实体框架模型是通过“ADO.NET 实体数据模型”从 SQL 2005 数据库(连接类型也是 SQL Server)创建的。

这很好用。也就是说,直到我更新数据库。如果我向现有表添加新表或列,一切都很好,但如果我删除列,更新就无法正常工作。当我更改列类型时,它也会抛出错误。

很久以前就报告了同样的问题: http: //blog.jongallant.com/2012/08/entity-framework-manual-update.html#.UytNrvldVD0,但它看起来很荒谬,我不敢相信我不是遗漏了什么。我肯定做错了什么吗?如何让模型正确更新?

Dav*_*cre 2

我也有同样的问题。我打开模型,从图表中删除更改的表,然后从数据库更新并重新添加表。EF 再次以正确的结构恢复了该表。保存模型,重建项目,一切都按预期进行。

我不确定为什么它没有检测到已删除的列。我相信如果您更改列的数据类型也会出现问题,但我还没有测试过。但到目前为止,上述解决方案对我有用。