Giu*_*eri 7 entity-framework entity-framework-6 .net-standard
是否可以在 .NET Standard 2.0 类库中使用 Entity Framework 6.3.0?
在Dependencies -> Packages我有一个对实体框架 6.3.0 的引用
我有这样的代码:
using System.Data.Entity;
public partial class AlertContext : DbContext
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
命名空间“System.Data”中不存在类型或命名空间名称“Entity”(您是否缺少程序集引用?)
找不到类型或命名空间名称“DbContext”(您是否缺少 using 指令或程序集引用?)
Ste*_*edy 14
6.3.0 是第一个面向 .NET Standard 的 Entity Framework 6 版本;它针对 .NET Standard 2.1以及 .NET 4.0 和 .NET 4.5,如其 Nuget 列表所示。6.2.0 only targeted .NET.
请注意,.NET Standard 2.0 仍然不是有效的目标。
Depending on your scenario, you might be able to get away with multi-targeting your library to .NET (in my example below, .NET 4.7.2) and .NET Standard 2.1:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net472;netstandard2.1</TargetFrameworks>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
Whether this is viable depends on 2 factors:
Your other references. The combination I offer above will be fine in most cases as .NET 4.7.2 and .NET Standard 2.1 can reference .NET Standard 2.0 packages, which covers most but by no means all modern packages.
您希望从中使用库的框架。当然,.NET 目标意味着该库可以被相同 .NET 版本或更高版本的 .NET Framework 项目使用。.NET Standard 2.1 目标允许面向 .NET Standard 2.1、.NET Core 3.0、Mono 6.4 和更高版本以及最新版本的 Xamarin 的项目使用该库。值得注意的遗漏是 3.0 之前的 .NET Core 版本。EF6不适用于 .NET Core 1 或 2。有关完整列表,请参阅 .NET Standard .NET 实现支持表。
* 我使用 .NET 4.7.2 进行说明,因为虽然 .NET 4.6.1 正式支持 .NET Standard 2.0,但 Microsoft 建议使用 4.7.2 或更高版本。请在此处查看我的回答以获取更多信息。
| 归档时间: |
|
| 查看次数: |
3086 次 |
| 最近记录: |