实体框架迁移种子和 ContextInitializer 种子有什么区别?

Entity-Framework what is the difference between Migrations Seed and ContextInitializer Seed?

我在学校学习 EF,目前正在使用 EF 5、MVC 5,我无法理解 Migrations 和 ContextInitializer。 我正在关注这个 guide because I find it more suited for my project. I did read and almost build the updated guide 但是,因为我使用的是稍旧的 EF5,所以我无法让它工作。
我的问题是:在较新的 EF6 指南中,这个 Migrations.cs 有一个 Seed 方法,在较旧的 EF5 指南中,Seed 方法在 [Model]ContextInitializer 中,两者的最佳实践是什么? 我确实知道迁移在使用程序包管理器控制台中的 Enable-Migrations Add-Migration MyTitleUpdate-Database 命令更新数据库方面要好一些。
如果这是一个愚蠢的问题,请原谅我。

迁移 Seed 方法用于在数据库迁移后立即播种数据,DB Initializer Seed 方法用于在数据库初始化后立即播种数据。

您可以使用 Db Initialize Seed 方法在 Initialization 之后立即将初始数据添加到 DB,但是您可以使用 Migration Seed 方法来检查 and/or 在迁移.

之后立即添加新数据或做一些特殊的事情

这可能有点令人困惑,但如果你仔细想想,你就会很好地理解它。这些是不同的情况。