首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >它有一个DefiningQuery,但没有InsertFunctionElement…Err

它有一个DefiningQuery,但没有InsertFunctionElement…Err
EN

Stack Overflow用户
提问于 2018-03-27 01:55:36
回答 2查看 0关注 0票数 0

无法更新EntitySet‘TableB’,因为它有一个DefiningQuery,并且元素中没有支持当前操作的元素

代码语言:txt
复制
TableA
int idA (identity, primary key)
...

TableB
int idA (FK for TableA.idA)
int val

表B在SQL服务器中没有定义的主键。实体框架导入了表和关联,并将这两个字段设置为键。但是,当我尝试在表中插入时,它将输出该错误!

编辑:正如亚历克斯所建议的,解决办法是:

  1. 右键单击edmx文件,选择OpenWith,xml编辑器
  2. 在edmx:StorageModel元素中定位该实体
  3. 完全删除DefiningQuery
  4. 将存储区:schema=“DBO”重命名为Schema=“DBO”(否则,代码将生成一个错误,说明名称无效)
  5. 删除“存储:名称”属性

我保留了原来的键,因为这两个列都是键的一部分,这对我来说是可以的。

EN

回答 2

Stack Overflow用户

发布于 2018-03-27 10:19:36

当遇到一个没有PrimaryKey的表时,它被视为一个视图。

视图显示在StorageModel\EntitySet中的EDMX文件中(在XML编辑器中打开以查看)。n\DefiningQuery元素

当您有一个DefiningQuery时,除非添加修改函数,否则该实体就变成只读的。需要3个修改函数(也就是存储过程),一个用于插入、更新和删除。

但你有两个选择:

更改关键定义:

  1. 让EF相信它认为的视图是一张桌子
  2. 或添加适当的修改函数。
票数 0
EN

Stack Overflow用户

发布于 2018-03-27 11:47:06

只需向表中添加主键即可。。

代码语言:txt
复制
ALTER TABLE <TABLE_NAME>
ADD CONSTRAINT <CONSTRAINT_NAME> PRIMARY KEY(<COLUMN_NAME>)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档