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

时间:2016-02-06 13:29:55

标签: c# asp.net-mvc entity-framework-6 entity-framework-5

我正在学习EF,我目前正在使用EF 5,MVC 5,我无法理解迁移和ContextInitializer。 我正在关注这个guide,因为我发现它更适合我的项目。我确实阅读并且几乎构建了更新的guide但是,因为我使用的是稍微旧的EF5,所以我无法使其正常工作。
我的问题是:在较新的EF6指南中,有这个Migrations.cs有一个Seed方法,在旧的EF5指南中,Seed方法在[Model] ContextInitializer中,两者的最佳实践是什么? 我确实理解,在使用程序包管理器控制台中的Enable-Migrations Add-Migration MyTitleUpdate-Database命令更新DataBase方面,迁移更好一些。 如果这是一个愚蠢的问题,请原谅我。

1 个答案:

答案 0 :(得分:1)

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

您可以使用Db Initialize Seed方法在初始化后立即向DB添加初始数据,但您可以使用Migration Seed方法检查和/或添加新数据或者在迁移之后立即做一些特殊的事情。

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