将列添加到DB表后,实体框架出现问题

asp.net c# entity-framework sql-server

我需要在我的数据库中的表中添加一个新的NVARCHAR列。所以我添加了该列,然后启动Visual Studio以更新Entity Framework的EDMX文件。

我在数据库中运行了所有内容的更新模型,这只会导致“数据读取器不兼容” - 错误。所以我在DB中重命名了整个表,从数据库更新了EDMX,将表重命名为原始名称,再次运行update,然后为所有受影响的存储过程创建了新的函数导入。但我仍然得到同样的错误:

数据读取器与指定的'[Model]。[Entity]'不兼容。类型为“[Column]”的成员在数据读取器中没有相应的具有相同名称的列。

我看了一下,如果数据库和框架中的列名不同,这似乎是一个常见的错误。然而情况并非如此,它们具有相同的名称。

我可以通过[Entity] .Context。[Column]访问代码中的列,所以我不太清楚数据阅读器在抱怨什么。

我的想法已经用完了,欢迎任何帮助。

一般承认的答案

事实证明EDMX很好,但由于一些奇怪的原因,设计师在我的项目中停止更新Designer.cs。

不得不进去并手动编辑它。


热门答案

更新模型将替换存储架构,但不会替换客户端架构或映射。从“干净的平板”开始, 备份当前的EDMX ,然后以XML格式打开它。删除对表的所有引用,然后在图形错误中关闭并打开。建立。如果您有任何错误(可能是已删除表的已损坏链接),请修复它们。然后更新模型以重新添加表。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因