2

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

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

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

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

4

1 回答 1

1

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

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

我认为这些是实体框架迁移的好技巧

于 2013-08-23T09:05:11.697 回答