EF Code First - 运行迁移后处理和清理

时间:2013-08-21 03:54:24

标签: entity-framework ef-migrations

我正在使用Entity Framework 5.0并已实现自定义迁移。

我想做的一件事是在完成特定迁移后执行一些计算和清理作业。我知道Seed()方法用于迁移后数据操作,但每次迁移都会运行。我希望在特定迁移完成后只运行一次。

我会在自定义迁移本身内部进行,但是进程要求我提取结果集并对它们执行计算等。如果可能的话,我想在C#中执行此操作(以利用我们的作业处理系统)。

为特定迁移运行迁移后处理代码的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我猜您可以通过询问__MigrationHistory表来定位特定的迁移。但这让我觉得有点脆弱,因为你可能想在某些时候重新构建迁移。我想我更愿意根据其他一些标准触发清理工作。

有没有办法检测数据是否“脏”?然后可以在必要时触发清理。如果不可能,您可以在数据库中创建一个表来保存标志,指示何时需要进行清理。您可以在Up()方法中设置标志,并在迁移中的Down()方法中将其删除。然后,您可以在Seed()方法中检查标志并触发清理。

我认为这些很好Tips for Entity Framework Migrations