2016-08-28 48 views
0

我对Oracle使用了数据库优先方法。我的一张桌子没有主键。它只有2列是其他表的外键。我已经从数据库(添加 - 新建项目 - ADO.NET实体数据模型)在ASP.NET MVC项目中生成模型。应该每个表都有使用ADO.NET的主键吗?

但是还有一个问题 - 我得到一个错误:

Error 159: EntityType 'DbModel.Store.SomeTableWithoutPK' has no key defined. Define the key for this EntityType. E:\Git_repo\ZZ\ZZ.Domain\DAL\DbModel.edmx

这是否意味着每个表必须有一个主键?我能避免这种情况吗?或者我将被迫添加一个主键到这个表的新列?当然,也可以将主键应用于多列,但是否有必要?

回答

1

每个表应该有一个主键以提高数据库效率,以便您可以编辑记录。

你不需要在你的2列的表

在设计师创建主键的新列,选择两列,并同时使用两者作为主键。只要空位不允许,并且没有重复项,您应该可以。

由于这是一个多对多的表,你正在使用EF,你以后可能会发现添加日期时间列于表GETDATE()设置为默认值将会使数据维护更加容易

+0

DiPix,我的回答帮你? – Mike

相关问题