如果表没有主键,是否使用 Linq to Entities (EDMX) 将数据添加到数据库表?
我正在尝试将数据添加到表中,并且 linq toEntity 抛出异常:
无法更新 EntitySet“XXXX”,因为它具有 DefiningQuery 并且 中不存在任何元素 支持当前的元素 操作。
我尝试添加数据的表没有主键,如果我添加一列 int 并将其设置为主键,问题就会消失,但从纯粹/强迫症的角度来看,该列是不必要的
UserTable UserGroup GroupTable
ID Name UserId GroupId ID Name
将数据添加到使用 Linq to Entities (EDMX) 的数据库表需要该表具有主键吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以手动编辑生成的
.edmx
文件,查找错误字符串并更正它们。事实证明,EF 确实需要每个表都有一个主键(这不是多对多关系)。有关没有主键的表以及为什么 EF 认为它是错误的更多信息:http://www.i-think22.net/archives/2009/07/24/linq-to-sql-and-tables-with-no-primary-key/
You can manually edit the generated
.edmx
file, look for Error strings and correct them. It turns out that EF does need a primary key for every table (which is not a many-to-many relationship).More on tables without primary keys and why it is considered wrong to EF: http://www.i-think22.net/archives/2009/07/24/linq-to-sql-and-tables-with-no-primary-key/