C# 如何使用实体框架核心调用没有主键的表

C# 如何使用实体框架核心调用没有主键的表,c#,asp.net,asp.net-core,entity-framework-core,odata,C#,Asp.net,Asp.net Core,Entity Framework Core,Odata,我正在用odata做一个asp.net核心api。数据库中的表没有主键,我没有更改数据库的权限。我使用以下命令调用我的数据库: “dotnet ef dbcontext scaffold”数据源=192.168.11.1\sql2016;初始目录=见中间;持久安全信息=True;用户id=Iaas;密码=Iaas123@#“Microsoft.EntityframeworkCore.SqlServer-d-c请参见middleContext-o Models\Entities-force” 对于

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

“dotnet ef dbcontext scaffold”数据源=192.168.11.1\sql2016;初始目录=见中间;持久安全信息=True;用户id=Iaas;密码=Iaas123@#“Microsoft.EntityframeworkCore.SqlServer-d-c请参见middleContext-o Models\Entities-force”

对于每个表,我都会遇到以下错误:

无法识别表“cmn.resshtenerkhitem”的主键

无法为表“cmn.resshtenerkhitem”生成实体类型


如何使用asp.net core中有主键的数据库?

简单回答,您没有。实体框架需要一个键。好消息是,如果您的表中没有密钥,您可以有效地伪造密钥。如果您的表有一个不同的隐式键,那么只需使用
[key]
装饰该属性,您就可以了。关键是它必须是一个独特的值。如果你没有一个单列可以这样做,那么你需要开始一起使用列来生成一个复合键(
[key,column(Order=0)]

相关?对不起,这个地址在我的情况下不起作用!你有装饰类属性[key],它没有从数据库中带来任何东西。你运行的是什么版本的Ef.Core?