我有一个在.NET 4.8和EF 6.4.4上的项目。我们正在逐步迁移到.Net Core,但在此过程中,我能否创建一个.NET Core数据上下文类,并将EF Core指向同一实体?
我有一个在.NET 4.8和EF 6.4.4上的项目。我们正在逐步迁移到.Net Core,但在此过程中,我能否创建一个.NET Core数据上下文类,并将EF Core指向同一实体?
可以,参考下面的图示。
.netstandard2.0
。Dal.csproj
和Dal.Core.csproj
中保持相同的命名空间,以便消费者不受影响)。Dal.csproj
移动到Dal.Core.csproj
。现在阶段+提交——这是非常重要的一步,否则您将丢失此类的git历史记录。现在您可以进行所有所需的更改,使其与新的DbContext
配合使用。Dal.Core.csproj
中的所有内容移回Dal.csproj
并删除Dal.Core.csproj
项目。不要忘记在提交之前暂存更改,以便git将移动的文件识别为重命名而不是删除+添加。提示: 确保您了解 EF Core 3 中的 笛卡尔爆炸问题。
注意: 如果您正在使用 EDMX 文件的模型优先方法,并且该方法不支持 EF Core,则无法将带有 EDMX 的项目转换为 netstandard2.0
,应将其保留为 net48
。
Include
生成“Single”还是“Split”查询。https://learn.microsoft.com/en-us/ef/core/querying/single-split-queries - David Browne - Microsoft