实体框架4.2:没有PK的表的InsertFunction

时间:2011-12-29 11:02:43

标签: sql-server entity-framework entity-framework-4.1 dbcontext

在Entity Framework 4.2中,我试图将值插入到没有PK的表中。 EF给了我以下错误:

  

无法更新EntitySet'ValisTypesForWebApplications'   因为它有一个DefiningQuery而没有< InsertFunction>元素存在   在< ModificationFunctionMapping>中元素支持当前   操作

从下面的讨论中,我了解可以通过编辑edmx文件来调整它,但在使用DbContext类时这不是最佳情况。

How do you update a table with a foreign key to another table in ADO.Net Entity Model?

有没有更好的方法来启用它?

1 个答案:

答案 0 :(得分:1)

DbContext与EDMX相同(DbContext没有EDMX根本不支持没有密钥的实体)。没有密钥的实体是只读的,除非您手动更改EDMX文件(请注意,除非您购买更多用于EDMX编辑的高级工具,否则数据库中的任何更新模型都将删除您的更改)或者您将创建存储过程并将其映射到实体的插入功能

简而言之,实体应该有密钥,因为EF应该能够唯一地识别它。否则,您可以在申请中遇到其他问题。