c# - 如何在 NET 5 项目中使用标准 2.0 实体框架库?
问题描述
我有 .net framework 4.8 和一个 NET 5 项目,我都想将 netstandard 2.0 库与 Entity Framework 一起使用。
标准 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 库
然后我可以只使用基本的脚手架参数来搭建脚手架
Scaffold-DbContext“数据源=SQLSERVER2019.xyz.local;数据库=FlexEF;Trusted_Connection=True”Microsoft.EntityFrameworkCore.SqlServer
但是我的上下文类充满了错误,例如:
错误 CS1660 无法将 lambda 表达式转换为类型“字符串”,因为它不是委托类型
错误 CS1061“EntityTypeBuilder”不包含“HasNoKey”的定义,并且找不到接受“EntityTypeBuilder”类型的第一个参数的可访问扩展方法“HasNoKey”(您是否缺少 using 指令或程序集引用?)
错误 CS1061“PropertyBuilder<short?>”不包含“HasComment”的定义,并且找不到接受“PropertyBuilder<short?>”类型的第一个参数的可访问扩展方法“HasComment”(您是否缺少 using 指令或装配参考?)
我误解了什么?
解决方案
所以事实证明,在我的上下文中,我只需要使用这个
使用 Microsoft.EntityFrameworkCore;
在 NET5 中我只需要引用 3 个包,在 Standard2.0 中我需要添加更多的包,这些包显然属于同一个命名空间。
如:
Microsoft.EntityFrameworkCore.Abstractions Microsoft.EntityFrameworkCore.Design
等等等等
叹...
推荐阅读
- c++ - 如何在 Visual Studio 2017 中打开 Visual Studio 2019 c++ 代码而不会出现错误?
- css - 如何使 div 过渡不那么刺耳?
- jenkins - Jenkins 无法部署到 nexus
- javascript - 在 chartjs 中包含 chartjszoom 后将无法缩放
- jquery - 如何使用ajax在url中传递不同的链接值
- java - 为什么即使我不提交也会收到 SQLException?
- c# - 释放锁并取消一个死锁的 TPL 任务
- typegraphql - 如何将参数传递给基于类的中间件
- javascript - 当用户在 textarea 中输入时,如何为文本后面的行提供单独的颜色?
- python-3.x - DOcplexException:表达式 xx 不能用作 xxx 的分隔符