我正在用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核心中具有任何主键的数据库?
答案 0 :(得分:1)
简短的回答,不是。实体框架需要一个密钥。好消息是,如果您的桌子没有钥匙,您可以有效地欺骗它。如果您的表的隐式键是唯一的,则只需用[Key]
装饰该属性,您就可以了。 key 问题是它必须是一个独特的唯一值。如果您没有这样做的单数列,那么您将需要开始同时使用列以创建复合键([Key, Column(Order = 0)]
。