Entity Framework 6 可以在 .NET Standard 项目中使用吗?
Posted
技术标签:
【中文标题】Entity Framework 6 可以在 .NET Standard 项目中使用吗?【英文标题】:Can Entity Framework 6 be used in a .NET Standard project? 【发布时间】:2020-02-11 08:02:10 【问题描述】:如果不是,会是吗?如果有,什么时候?
我还没有找到任何明确的官方信息,而我在 Stack Overflow 上能找到的有限信息是一两年前的事了。
我能够找到官方信息说 EF 6.3 将能够在 .NET Core 项目中使用,但我找不到它的发布日期,我也不确定在 .NET Core 项目中使用的含义是什么。 NET 标准项目。
【问题讨论】:
【参考方案1】:.NET Standard 项目不可执行。
EF 6 支持 .NET Standard 2.1,当前受 .NET Core 3.0 或更高版本支持 - 没有 .NET Framework 版本。 EF 6 还支持 .NET 4.0 和 4.5 或更高版本。
https://github.com/aspnet/EntityFramework6/blob/release/6.4/src/EntityFramework/EntityFramework.csproj#L6
【讨论】:
Entity Framework 6(最新版本 6.4.4)是否支持 .NET Standard 2.0? @petrosmm 不,它没有。这就是 .NET Standard 2.1。 EF6 不支持 .NET Standard 2.0。 哇,我对 Fuget 的印象是它支持 2.0,但根据下面的@Ogglas,你是对的。【参考方案2】:一些澄清,因为 EntityFramework 6.3.0
.NET Standard 2.1
已被支持。但是没有支持.NET Standard 2.1
的.NET Framework
版本。来自微软的评论:
NET Framework 不支持 .NET Standard 2.1 或更高版本。为了 更多详情请看.NET Standard 2.1的公告。
这意味着大多数使用EntityFramework 6.X
的应用程序无论如何都无法使用.NET Standard 2.1
项目。
https://docs.microsoft.com/en-us/dotnet/standard/net-standard
https://www.nuget.org/packages/EntityFramework/#
【讨论】:
建议使用 ef 6 构建您的库,以 .net 4 和 .net 标准为目标,这样它就可以支持在 .net 4 和 .net 核心上运行 @TWilly 你能扩展一下吗? 嗯,这对 .NET Framework 中的用户来说非常具有误导性,他们会看到“EF6 现在在 6.3 中支持 .NET Core”。当然,它支持 .NET Core,但是通过折腾 .NET Framework 之类的失败了(是的,我知道它对 .NET 核心仍然有用,但应该很清楚它不支持 .NET 框架)以上是关于Entity Framework 6 可以在 .NET Standard 项目中使用吗?的主要内容,如果未能解决你的问题,请参考以下文章
Entity Framework 6 0.1 到 0.1 与 fluent api 的关系
entity framework 6 添加实体必须用设计器拖吗
Entity Framework 6 使用正在更新的数据更新所有记录