基于代码的代码优先迁移

Posted

技术标签:

【中文标题】基于代码的代码优先迁移【英文标题】:Code Based Code First Migration 【发布时间】:2014-01-31 15:12:43 【问题描述】:

如何在没有包管理器控制台命令的情况下实现代码优先迁移。我想通过使用代码来实现 Code First Migrations 逻辑。 我不想写以下命令

PM    >      Enable-Migrations
PM    >      Add-Migration
PM    >      Update-Database

请告诉我最佳做法。

提前致谢

【问题讨论】:

【参考方案1】:

看看使用安装 EF 包时提供的 migrate.exe 工具。

http://msdn.microsoft.com/en-gb/data/jj618307.aspx

理论上,您可以从您的代码中调用它。

【讨论】:

【参考方案2】:

我不知道为什么你会反对前两个,但我完全理解最后一个。您正在寻找 DBMigrator 类。您可以使用它来检查需要运行多少迁移,并迁移到任何版本。如果您可以使用 Update-Database 来完成,您可以在代码中完成。我在下面引用了一个类似的例子。

Triggering EF migration at application startup by code

【讨论】:

感谢您的建议,实际上我想在我的代码中实现以下所有三个命令 PM > Enable-Migrations PM > Add-Migration PM > Update-Database。如果我在模型类中更改任何内容(添加或删除字段),那么它会使用代码中的逻辑自动将代码与数据库同步(无论是在 Global.aspx 中还是在 DbContex 类中)。谢谢,

以上是关于基于代码的代码优先迁移的主要内容,如果未能解决你的问题,请参考以下文章

代码优先迁移 - 如何回滚第一次迁移

调试代码优先的实体框架迁移代码

如何禁用代码优先迁移

实体框架 - 迁移 - 代码优先 - 每次迁移播种

独立于模式的实体框架代码优先迁移

骑士。 EF 代码优先迁移