我有.net framework 4.8和一个net 5项目,我都想使用带有实体框架的netstandard 2.0库。
标准2.0参考,最新版本有效:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.6">
NET 5参考:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.7" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.7">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.7" />
NET 5项目引用了netstandard 2.0库
然后我可以只使用基本的脚手架参数脚手架
脚手架DbContext"数据来源=SQLSERVER2019.xyz.local;数据库=FlexEF;Trusted_Connection=True";Microsoft.EntityFrameworkCore.SQL服务器
但我的上下文类充满了错误,比如:
错误CS1660无法将lambda表达式转换为类型"string",因为它不是委托类型
错误CS1061"EntityTypeBuilder"不包含"HasNoKey"的定义,并且找不到接受"EntityTypeBuilder"类型的第一个参数的可访问扩展方法"HasNoKey"(是否缺少using指令或程序集引用?(
错误CS1061'PropertyBuilder<短>'不包含"HasComment"的定义,并且没有接受"PropertyBuilder<短>'可以找到(您是否缺少使用指令或程序集引用?(
我误解了什么?
因此,在我的上下文中,我只需要使用
使用Microsoft.EntityFrameworkCore;
在NET5中,我只需要引用这3个包,在Standard2.0中,我需要添加更多的包,这些包显然属于同一个命名空间。
例如:
Microsoft.EntityFrameworkCore.抽象Microsoft.EntityFrameworkCore.Design
等等
叹气。。。