【发布时间】:2010-12-08 00:45:54
【问题描述】:
这件事快把我逼疯了,这个错误对我来说毫无意义:
无法更新 EntitySet 'TableB',因为它有一个 DefiningQuery 并且元素中不存在支持当前操作的元素。
我的桌子是这样摆放的:
表A int idA(身份,主键) ... 表B int idA(表 A.idA 的 FK) 整数值TableB 在 SQL 服务器中没有定义的主键。实体框架已导入表和关联,并将这两个字段设置为键。但是当我尝试插入表时它会输出该错误!
怎么了??
编辑: 正如亚历克斯所建议的,解决方案是这样的:
- 右击edmx文件,选择打开方式,XML编辑器
- 在 edmx:StorageModels 元素中找到实体
- 完全删除 DefiningQuery
- 将 store:Schema="dbo" 重命名为 Schema="dbo"(否则代码会生成错误,提示名称无效)
- 删除 store:Name 属性
我保留了原来的密钥,因为我认为两列都是密钥的一部分。
【问题讨论】:
-
感谢您的更新 - 分步说明帮助这个 EF 新手让 ASP.NET MVC 教程应用程序正常工作!
-
谢谢!我遇到了一个问题,即 EF 没有为具有主键的 sql server 2000 表生成正确的 edmx 文件。但是这条指令救了我:)
-
3.5 年后,这篇文章仍在帮助人们,在这种情况下,我! ...致:Palantir 一步一步的描述(它有效),感谢 Alex >>> Bravo!
-
该解决方案对我有用.. 谢谢
-
秘密是从架构定义中删除“存储:”。很不错