在 ASP.NET Core 中使用 Entity Framework 6
Posted
技术标签:
【中文标题】在 ASP.NET Core 中使用 Entity Framework 6【英文标题】:Using Entity Framework 6 in ASP.NET Core 【发布时间】:2017-09-30 11:59:32 【问题描述】:假设我有:
用于 .NET Core 框架的 ASP.NET Core 独立 Web API 项目 带有用于完整 .NET 框架的 EF6 数据模型的类库ASP.NET Core 项目引用类库
这里提出的这个架构:
https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6
问题是:我的独立应用程序是否能够在发布(或发布)后在指定的目标平台(Win、Linux、Mac 运行时)上执行,如果它的依赖目标是完整的 .NET Framework?
非常感谢
【问题讨论】:
您不能在 .NET Core 应用程序中使用 .NET >=4.5 库。您必须以 .NET Framework >=4.5 为目标。话虽如此,不,您不能在 linux 或 macOS 上本地运行它。当您在 macos/linux 上的 mono 上运行它时,您虽然可以使用大部分功能,但这是另一回事。如果您需要 EF6 的所有功能,或者 EFCore 中实现的功能是否适合您的用例,请三思 【参考方案1】:这是不可能的。您提供的同一链接确认:
要使用 Entity Framework 6,您的项目必须针对 .NET Framework 进行编译,因为 Entity Framework 6 不支持 .NET Core。如果您需要跨平台功能,则需要升级到 Entity Framework Core。
您可以在 .NET Framework(不是 .NET CORE)和 EF6(但不能跨平台)上使用 ASP.NET Core。但不是 .NET Core 上的 ASP.NET Core 并使用 EF6。您需要为该项目使用 EF Core。
【讨论】:
这不再是真的。从 EF6.3 起,支持 .net core(3)。【参考方案2】:免责声明:我是项目的所有者Entity Framework Classic
正如@Adailson 回答的那样,直接实体框架是不可能的
但是,可以通过 EF Classic:http://entityframework-classic.net/
这是一个也支持 .NET Core 的 EF6 分支。我们计划集成大量功能和错误修复。
提供社区版(免费)和企业版(付费)。
什么是 EF Classic
Entity Framework Classic 是来自最新 EF6 代码库的受支持版本。它支持 .NET Framework 和 .NET Core,并通过添加大量必备的内置功能克服了一些 EF 限制。
【讨论】:
以上是关于在 ASP.NET Core 中使用 Entity Framework 6的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 和 Entity Framework Core:Linq 中的左(外)连接
如何为 ASP.net Core 配置 Entity Framework 6
C# ASP.NET Core Entity Framework Core 异步 ToQueryable 比较
如何在 ASP.NET Core Razor Pages 项目的 _layout.cshtml 文件中使用 Razor Page Using Entity Framework 作为部分视图?
这是如何使用 Entity Framework Core 和 ASP.NET Core MVC 2.2+ 和 3.0 创建数据传输对象 (DTO)
ASP.Net Core项目在Mac上使用Entity Framework Core 2.0进行迁移可能会遇到的一个问题.