首页 > 解决方案 > 为 EF 6.x 和 EF Core 重用 EF 实体

问题描述

我有一个关于 .NET 4.8 和 EF 6.4.4 的项目。我们正在逐渐迁移到 .Net Core,但在此过程中,我可以创建一个 .NET Core 数据上下文类 EF Core 并将两者都指向相同的实体吗?

标签: c#entity-frameworkentity-framework-core

解决方案


是的你可以。请参考下图。

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

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

注意:如果您使用 EF Core 不支持的 EDMX 文件以模型优先方法工作,则无法将带有 EDMX 的项目转换netstandard2.0net48.

在此处输入图像描述


推荐阅读