【问题标题】:Entity framework custom migrations实体框架自定义迁移
【发布时间】:2016-04-12 13:45:10
【问题描述】:

添加迁移时,您可以让生成器在 Up() 方法中添加一些代码吗?

就像一段代码会在每次迁移之前自行运行。

我知道您可以自己编写所有内容,但是可以自动完成吗?

【问题讨论】:

  • 您可以从代码内部运行迁移(与包管理器控制台相反)。这将允许您在迁移之前运行代码。 romiller.com/2012/02/09/running-scripting-migrations-from-code
  • @SteveGreene 我想将代码直接注入到迁移中,所以稍后我可以看到我的代码何时对 db 进行了更改。此外,您的链接仅显示如何从代码运行迁移,而不是创建它们(这不会有帮助)。
  • 好吧,它运行您从控制台创建的迁移。如果您对自己的身份进行更多解释,可能会有所帮助。下面你提到你想在每次迁移中注入一些 SQL,但不是手动的。问题是模型更改会触发迁移。您也许可以添加到每次迁移后运行的迁移 Seed()。
  • @SteveGreene 就是这样,我想注入将在每次迁移之前运行的代码,我不想手动执行。从我到目前为止收集的所有信息来看,您似乎无法做到这一点。

标签: c# sql-server entity-framework ef-code-first entity-framework-migrations


【解决方案1】:

您可以使用MigrationOperation,它允许声明在迁移期间执行的与数据库无关的操作,并为特定的数据库供应商实现它。

看看this 的帖子,看看它是如何工作的

【讨论】:

  • 但是我必须在 Up() 方法中手动编写代码。可以自动完成吗?
  • 我希望每个 Up() 都包含对执行某些工作然后生成 SQL 的方法的调用(如链接中所示)。您提供的链接很有用,我会使用它,我只是不想手动编写对方法的调用。
  • 我认为您无法更改 VS 生成这些类的方式。我将定义一个继承自 DBMigration 的抽象类 CustomDBMigration 并在 Up 方法中调用您的自定义代码。然后,您将使用 Visual Studio 自动生成标准迁移类,并手动将继承从 DBMigration 更改为 CustomDBMigration
  • 我不想手动做任何事情。如果有办法完全自动化流程,我一直在徘徊。
  • 明白。我不认为这是可能的,但如果有人可以帮助你,让我们看看
猜你喜欢
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 2015-05-11
  • 1970-01-01
  • 2016-07-15
  • 1970-01-01
相关资源
最近更新 更多