将基于 EF6 EDMX 的模型移植到 EF Core

内容纲要

EF Core 不支持对模型使用 EDMX 文件格式。 要移植这些模型,最佳方法是从应用程序的数据库中生成基于代码的新模型。

安装 EF Core NuGet 包

安装 Microsoft.EntityFrameworkCore.Tools NuGet 包。

重新生成模型

现可使用反向工程功能基于现有数据库创建模型。

在包管理器控制台(“工具”–>“NuGet 包管理器”–> “包管理器控制台”)中运行以下命令。

Scaffold-DbContext "<connection string>" <database provider name>

例如,以下命令用于在 SQL Server LocalDB 实例上根据博客数据库设置模型的基架。

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer

删除 EF6 模型

现从应用程序中删除 EF6 模型。

可将 EF6 NuGet 包 (EntityFramework) 保留在安装状态,因为 EF Core 和 EF6 可在同一应用程序中并排使用。 但是,如果你不打算在应用程序的任何区域使用 EF6,则卸载此包将有助于将编译器错误集中在需注意的代码片段。

更新代码

此时,需要处理编译错误并检查代码,以查看 EF6 与 EF Core 之间的行为变化是否会对你产生影响。

测试移植

你的应用程序进行了编译,并不意味着它会成功移植到 EF Core。 需要测试应用程序的所有区域,确保行为变化都未对你的应用程序产生负面影响。

其他注意事项

EF Core 不支持 EntityClient 提供程序,因此任何 EntitySQL 查询都必须迁移到 LINQ 或 FromRawSql

此外,不支持 EntityClient 连接字符串。

有关更多注意事项,请阅读有关 EF6 与 EF Core 之间的差异的完整指南。

给TA打赏
共{{data.count}}人
人已打赏
.NET

从 EF6 移植到 EF Core 概述

2022-6-22 10:13:10

.NET

从 EF6 移植到 EF Core 时要考虑的详细情况

2022-6-22 10:19:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索