每个表都应该使用ADO.NET?

时间:2016-08-28 08:21:00

标签: asp.net-mvc database ado.net

我正在使用Oracle的数据库优先方法。我的一张桌子没有主键。它只有2列,是其他表的外键。

我在ASP.NET MVC项目中从数据库生成模型(Add - New Item - ADO.NET Entity Data Model)。

但是有问题 - 我收到错误:

  

错误159:EntityType'DbModel.Store.SomeTableWithoutPK'没有定义键。定义此EntityType的键。 E:\ Git_repo \ ZZ \ ZZ.Domain \ DAL \ DbModel.edmx

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

1 个答案:

答案 0 :(得分:1)

每个表都应具有数据库效率的主键,以便您可以编辑记录。

您无需在2列表

中为主键创建新列

在设计器中,选择两列并将两者一起用作主键。只要不允许空值并且没有重复,您应该没问题。

由于这是一个多对多表并且您正在使用EF,因此稍后您可能会发现将datetime列添加到表中并使用getdate()作为默认值将使数据维护更容易