0

我在我的数据库设计中有一个桥接表,它没有主键。当我尝试使用ASP.NET MVC 3的数据库优先方法创建我的模型时,它会创建一个模型,其中包含警告“表/视图'CRM_Test_1.dbo.SalesOrderProduct'没有定义主键,并且没有可以推断出有效的主键,这个表/视图已经被排除了,要使用这个实体,你需要检查你的模式,添加正确的键并取消注释。没有主键的桥接表

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

谢谢。

回答

1

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

+0

添加自动编号主键没有真正的优势,在另一篇文章[这里](https://stackoverflow.com/questions/2190272/sql-many-to-many-table-primary-key)中讨论。 – VCD

2

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

它说没错。但是,您可以将表标识列添加为主键。这将使警告消失。