为EF 6.x和EF Core都重复使用EF实体

3

我有一个在.NET 4.8和EF 6.4.4上的项目。我们正在逐步迁移到.Net Core,但在此过程中,我能否创建一个.NET Core数据上下文类,并将EF Core指向同一实体?


似乎.NET Core无法与netstandard2.0一起使用。 - Toolkit
你正在使用哪个版本的 .net core? - Igor
我的起点是4.8和EF 6.4.4,我正在寻找任何组合的Core和Standard以重用现有实体。 - Toolkit
我有一个 .NET Core 3.1 的项目,它引用了一个目标为 .NET Standard 2.0 的项目。这里没有任何问题,所以我不确定你所说的不能工作是什么意思。 - Igor
.NET Core 3.1和EF Core一起使用? - Toolkit
显示剩余6条评论
1个回答

1

可以,参考下面的图示。

  1. 将所有库转换成.netstandard2.0
  2. 首先将所有模型移动到单独的项目中。
  3. 然后创建新项目,在其中将dal类迁移到EF Core中(我建议在Dal.csprojDal.Core.csproj中保持相同的命名空间,以便消费者不受影响)。
  4. 将第一个dal类从Dal.csproj移动到Dal.Core.csproj。现在阶段+提交——这是非常重要的一步,否则您将丢失此类的git历史记录。现在您可以进行所有所需的更改,使其与新的DbContext配合使用。
  5. 完成所有迁移后,将Dal.Core.csproj中的所有内容移回Dal.csproj并删除Dal.Core.csproj项目。不要忘记在提交之前暂存更改,以便git将移动的文件识别为重命名而不是删除+添加。

提示: 确保您了解 EF Core 3 中的 笛卡尔爆炸问题

注意: 如果您正在使用 EDMX 文件的模型优先方法,并且该方法不支持 EF Core,则无法将带有 EDMX 的项目转换为 netstandard2.0,应将其保留为 net48

enter image description here


2
使用 EF 5,您可以选择 Include 生成“Single”还是“Split”查询。https://learn.microsoft.com/en-us/ef/core/querying/single-split-queries - David Browne - Microsoft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接