【问题标题】:Entity Framework 6 and .NET Core applicationEntity Framework 6 和 .NET Core 应用程序
【发布时间】:2019-02-06 08:30:16
【问题描述】:

我一直在阅读 .NET Core 和 ASP.NET Core and Entity Framework 6

说明

在 ASP.NET Core 应用程序中使用 Entity Framework 6 的推荐方法 是将 EF6 上下文和模型类放在一个类库项目中 目标是完整的框架。添加对类库的引用 ASP.NET Core 项目。

但是,当我实际执行以下操作时。

  1. 创建基于 .NET Core 的控制台应用程序
  2. 创建基于 .NET 完整框架的类库。
  3. 在类库中,添加 EDMX 并将其与 SQL 数据库链接。
  4. 请参阅 .NET Core 应用程序中的类库。

它不会让我编译并出现以下错误:

类型 DbSet 在未引用的程序集中定义。

这意味着我必须向控制台应用程序添加一个ADO.NET Entity Framework 引用,但它不允许我这样做,因为 .NET Core 应用程序不支持完整的实体框架。

当然,我遗漏了一些东西或者上面提到的帖子有误。

有什么问题?

【问题讨论】:

  • 是否有任何不使用 EFCore 的具体原因?
  • 是的,因为我正在尝试在实体框架实现无法更改但项目必须转到 .net core 的场景中
  • EF 6.3 将在 .NET Core 3 中得到支持(目前处于预览版 1 中):blogs.msdn.microsoft.com/dotnet/2018/12/04/…
  • @MandarJogalekar 这是一个相当不切实际的场景。迁移到 .NET Core 意味着必须进行很多更改。 EF Core 是未来完全受支持的版本,EF 6.3 及更高版本基本上处于维护模式
  • @MandarJogalekar 听起来 真正的 问题是如何使用 EDMX,而不是 EF 6。数据库优先 is available in EF Core 并且不需要 EDMX 文件。即使在 EF6 中,您也可以将数据库反向工程为代码优先类。 EDMX 是 EF 4-5 的工作方式。无论如何,这是您必须摆脱的东西

标签: c# .net entity-framework


【解决方案1】:

从 Entity Framework 6.3 开始,您将能够将 EF6.x 与 .NET Core 一起使用,而不必切换到 EF Core。

来自 Diego Vega 的博文Announcing Entity Framework 6.3 Preview with .NET Core Support

EF 6.3 中有哪些新功能?

虽然 Entity Framework Core 是为在 .NET Core 上工作而从头开始构建的,但 6.3将是第一个版本 可以在 .NET Core 上运行并跨平台工作的 EF 6。事实上, 此版本的主要目标是促进迁移现有的 使用 EF 6 到 .NET Core 3.0 的应用程序。

【讨论】:

    【解决方案2】:

    你提供的link很清楚:

    要使用 Entity Framework 6,您的项目必须针对 .NET 进行编译 框架,因为 Entity Framework 6 不支持 .NET Core。如果你 需要跨平台功能,您需要升级到实体 框架核心。

    创建一个新的 ASP.NET Core 并以完整的 .NET 而不是 Core 为目标。

    【讨论】:

      猜你喜欢
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 2021-12-22
      • 2019-01-11
      相关资源
      最近更新 更多