它有一个DefiningQuery,但没有InsertFunction元素......错误
这件事让我发疯,而这个错误对我来说毫无意义:
无法更新EntitySet'TableB',因为它具有DefiningQuery并且元素中不存在元素以支持当前操作。
我的桌子是这样放的:
TableA int idA (identity, primary key) ... TableB int idA (FK for TableA.idA) int val
TableB在SQL服务器中没有定义的主键。 实体框架已导入表和关联,并将这两个字段设置为关键字。 但是当我尝试插入表格时它会输出错误!
怎么了??
编辑:正如亚历克斯所建议的,解决方案是这样的:
我将钥匙保持原样,因为对我来说两列都是钥匙的一部分。
那么当没有PrimaryKey的情况下遇到一个表时,它将被视为一个View。
并且视图显示在StorageModel EntitySet [n] DefiningQuery元素中的EDMX文件中(在XML编辑器中打开以查看)。
当你有一个定义查询时,实体变成只读,除非你添加修改函数。 每个插入,更新和删除需要3个修改功能(又名存储过程)。
但是你有两个选择:
更改关键定义:
在你的情况下,我建议(1)。
只需将一个主键添加到表中。 而已。 问题解决了。
ALTER TABLE <TABLE_NAME>
ADD CONSTRAINT <CONSTRAINT_NAME> PRIMARY KEY(<COLUMN_NAME>)
我错过了我的桌子上的主键,并得到了这个错误信息。 我注意到的一件事是在将密钥添加到表中之后,我需要使用设计器从edmx清除表,保存edmx,然后再次更新以添加表。不是拾取密钥因为它已被分配为视图。 这不需要手动编辑edmx。
链接地址: http://www.djcxy.com/p/64919.html上一篇: It has a DefiningQuery but no InsertFunction element... err
下一篇: Insert Records into Sqlite DB using ADO.NET Entity Framework?