首页 > 解决方案 > 如何为具有相同结构的不同数据库制作 EF 迁移脚本

问题描述

我正在使用实体框架开发 ASP.NET MVC 5 应用程序。最初我使用 sql server community edition 为模型创建表。现在我将数据库更改为 Mysql 并尝试在数据库上应用迁移。对于某些人来说,它有效,而对于某些人来说,它没有(特别是当它在表名之前有 dbo. 前缀时)。

问:我想知道是否有办法为不同类型的数据库维护不同的迁移脚本,并根据客户的预算相应地生成 sql 脚本。(假设我的客户现在可以负担得起 MySql 和以后的 SqlServer)。我的具体目标是为所有列出的数据库生成脚本,比如我有不同的提供程序,如 POSTGRESQL、RAVENDB、MYSQL、SQLSERVER 等。

我知道我可以稍后从一个数据库创建 ANSI 标准脚本并复制到其他数据库,但我需要为每种类型进行 EF 版本控制,现在这是我的要求。

标签: asp.net-mvc-5entity-framework-6

解决方案


您可以尝试即时更改配置,OnModelCreating然后在需要时将不同的迁移保留在单独的程序集中?

// OnModelCreating builder.ApplyConfiguration(new CustomConfiguration());

老实说,我宁愿不走这条路,并确保您创建(并测试!)可重用(ANSI)迁移。


推荐阅读