没有主键的桥接表

Posted

技术标签:

【中文标题】没有主键的桥接表【英文标题】:Bridge table with no primary key 【发布时间】:2012-02-14 16:33:12 【问题描述】:

我的数据库设计中有一个桥接表,但它没有主键。当我尝试使用 ASP.NET MVC 3 的数据库优先方法来创建我的模型时,它会创建一个带有警告的模型 “表/视图 'CRM_Test_1.dbo.SalesOrderProduct' 没有定义主键并且无法推断出有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的架构,添加正确的键,然后取消注释。"

是我做错了什么还是有办法让这个警告消失??

谢谢。

【问题讨论】:

【参考方案1】:

实体框架使用主键为每条记录创建唯一的实体键。如果表上没有主键,它会显示您看到的警告。

说的没错。但是您可以在表中添加一个标识列作为主键。这将使警告消失。

【讨论】:

【参考方案2】:

如果你想抑制错误信息,你可以添加一个主键(int, autonumber)。有人会说你需要一个主键。或者,如果这在您的数据模型中有意义,您可以创建桥接 ID 的复合键。

【讨论】:

添加自动编号主键并没有真正的优势,正如另一篇文章 here 中所讨论的那样。

以上是关于没有主键的桥接表的主要内容,如果未能解决你的问题,请参考以下文章

转载mysql主键的缺少导致备库hang

mysql表中一个表中可以有多个主键吗?

mybatis insertupdate delete默认返回值解释与如何设置返回表主键

oracle怎么查询所有的表有没有主键

关于主键的设计primary key

MySQL多表