这件事使我发疯,错误对我来说毫无意义:
无法更新EntitySet'TableB',因为它具有DefiningQuery并且该元素中不存在任何元素来支持当前操作。
我的桌子是这样的:
表A int idA(身份,主键) ... 表B int idA(FK表示TableA.idA) 间隔
TableB在SQL Server中没有定义的主键。实体框架已导入表和关联,并将两个字段都设置为键。但是当我尝试向表中插入时,它将输出该错误!
怎么了??
编辑: 根据亚历克斯的建议,解决方案是这样的:
- 右键单击edmx文件,选择“打开方式”,XML编辑器
- 在edmx:StorageModels元素中找到实体
- 完全删除DefiningQuery
- 将store:Schema =“ dbo”重命名为Schema =“ dbo”(否则,代码将生成一条错误消息,指出名称无效)
- 删除store:Name属性
我保留了原样的键,因为我认为两列都是键的一部分是可以的。
6
感谢您的更新-分步说明帮助该EF newb使ASP.NET MVC教程应用程序正常工作!
—
亚当·尼尔
谢谢!我有一个问题,就是EF无法为具有HAS主键的sql server 2000表生成正确的edmx文件。但这条指令救了我:)
—
100r 2010年
3.5年后,这篇文章仍然对ppl有所帮助,在本例中为ME!...致:Palantir逐步进行了描述(有效),感谢Alex >>> Bravo!
—
nanonerd
该解决方案为我工作..谢谢
—
Delavega
秘诀是从架构定义中删除“ store:”。非常好
—
Guilherme Ferreira 2014年