这件事让我发疯,错误对我来说毫无意义:
无法更新 EntitySet 'TableB',因为它具有 DefiningQuery 并且该元素中不存在支持当前操作的元素。
我的 table 是这样放置的:
表A
int idA(身份,主键)
...
表B
int idA (FK for TableA.idA)
整数值
TableB 在 SQL Server 中没有定义主键。 Entity Framework 已导入表和关联并将这两个字段设置为键。但是当我尝试插入表时它会输出该错误!
怎么了??
编辑:
正如亚历克斯所建议的,解决方案是这样的:
我把 key 留在原处,因为两列都是 key 的一部分对我来说是可以的。
最佳答案
好吧,当遇到没有主键的表时,它被视为 View 。
View 显示在 StorageModel\EntitySet[n]\DefiningQuery 元素中的 EDMX 文件(在 XML 编辑器中打开以查看)中。
当您拥有 DefiningQuery 时,实体将变为只读,除非您添加修改功能。您需要 3 个修改函数(又名存储过程),分别用于插入、更新和删除。
但是你有两个选择:
更改 key 定义:
在你的情况下,我推荐(1)。
关于asp.net - 它有一个 DefiningQuery 但没有 InsertFunction 元素......错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1589166/