【问题标题】:How can I use standard 2.0 Entity Framework Library with a NET 5 project?如何在 NET 5 项目中使用标准 2.0 实体框架库?
【发布时间】:2021-06-25 08:49:45
【问题描述】:

我有 .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”不包含“HasComment”的定义,并且找不到接受“PropertyBuilder”类型的第一个参数的可访问扩展方法“HasComment”(您是否缺少使用指令还是程序集引用?)

我误解了什么?

【问题讨论】:

  • 我不确定我是否遗漏了什么,但这些不是完全不同的版本吗? - 因此 - 有不同的 API?
  • Stefan 如果您在此处阅读此段:docs.microsoft.com/da-dk/ef/core/cli/… 它让我相信这是正确的选择。

标签: c# entity-framework .net-5 .net-standard-2.0


【解决方案1】:

所以事实证明,在我的上下文中,我只需要使用这个

使用 Microsoft.EntityFrameworkCore;

在 NET5 中我只需要引用 3 个包,在 Standard2.0 中我需要添加更多的包,显然属于同一个命名空间。

如:

Microsoft.EntityFrameworkCore.Abstractions Microsoft.EntityFrameworkCore.Design

等等等等

叹息...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2019-03-02
    • 2017-12-31
    • 2014-10-13
    相关资源
    最近更新 更多