使用映射从 edmx 生成 dbcontext 对象
Posted
技术标签:
【中文标题】使用映射从 edmx 生成 dbcontext 对象【英文标题】:generate dbcontext objects from edmx with mappings 【发布时间】:2018-06-18 11:51:52 【问题描述】:在我们公司,我们有很多使用 edmx 文件和 EF4 的遗留应用程序。 我们想迁移到 EF6(或 EF 核心)。有没有一种方法可以让我们从这个 edmx 使用映射生成代码优先对象(dbcontext、实体)。
我们怎样才能做到这一点?
【问题讨论】:
【参考方案1】:也许最好的解决方案是从当前数据库中使用脚手架(对模型进行逆向工程)。
EF Core 为这个脚手架提供了不错的 powershell 工具 https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db 您还可以使用指定的 Table 参数将整个(可能很大)DbContext 拆分为更多 DbContext https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell
EF 6 也有一些脚手架实际数据库的选项Entity Framework - Generating Classes
【讨论】:
问题是edmx是强映射的。我们不想从 oracle 数据库重新启动。我们想要最少的代码中断。例如,数据库中的名称不同。 也许这个答案可以帮助您***.com/a/14882632/2866538 先将您的 edmx 转换为 EF 5.x 代码,然后再迁移到 EF 6【参考方案2】:您为什么要费心从 .edmx 生成任何东西?如果您首先使用现有数据库中的代码创建新项目怎么办?
【讨论】:
因为我们希望以最少的工作量迁移遗留应用程序。 edmx 已经在那里了...以上是关于使用映射从 edmx 生成 dbcontext 对象的主要内容,如果未能解决你的问题,请参考以下文章
从数据库生成时,AspNetUserRoles 不在 EDMX 中