如何在没有主键的情况下使用实体框架核心调用表

时间:2019-07-09 12:08:38

标签: c# asp.net asp.net-core entity-framework-core odata

我正在用odata做一个asp.net核心api。我数据库中的表没有主键,并且我无权更改数据库。我使用以下命令调用数据库:

  

“ dotnet ef dbcontext支架”数据源= 192.168.11.1 \ sql2016;初始目录= SeeMiddle;持久性安全信息= True;用户ID = Iaas;密码= Iaas123!@#“ Microsoft.EntityframeworkCore.SqlServer -d -c SeeMiddleContext -o模型\实体--force“

我在每个表中遇到以下错误:

  

无法识别表'cmn.ReshteNerkhItem'的主键。

     

无法为表'cmn.ReshteNerkhItem'生成实体类型。

我如何使用在asp.net核心中具有任何主键的数据库?

1 个答案:

答案 0 :(得分:1)

简短的回答,不是。实体框架需要一个密钥。好消息是,如果您的桌子没有钥匙,您可以有效地欺骗它。如果您的表的隐式键是唯一的,则只需用[Key]装饰该属性,您就可以了。 key 问题是它必须是一个独特的唯一值。如果您没有这样做的单数列,那么您将需要开始同时使用列以创建复合键([Key, Column(Order = 0)]

相关问题