我有一个工作代码优先的实体模型,并具有适当的模型更改策略:
public class MyModelChangePolicy : DropCreateDatabaseIfModelChanges<MyDBContext>
{
protected override void Seed(MyDBContext context)
{
//Add the enumeration type values
context.SyncEnums(false);
base.Seed(context);
}
}
SyncEnums
是我创建的扩展方法,该方法将数据加载到多个枚举类型表中。
现在,我正在努力将代码优先迁移添加到我的项目中。我正在MSDN上使用本指南。Configuration.cs已添加到“迁移”文件夹下。但是它也有一种Seed
方法。这是自动生成的代码:
internal sealed class Configuration : DbMigrationsConfiguration<MyDBContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(MyDBContext context)
{
// This method will be called after migrating to the latest version.
}
}
我是第一次接触代码,这是我创建的第一个迁移计划。我的问题是:这两种种子方法之间有什么区别?我应该使用哪一个?
当且仅当在迁移过程中删除并重新创建数据库时,第一种方法将为您的数据库添加种子。每次运行迁移时,第二个选项都将为数据库设置种子,而不管是否删除并重新创建了数据库。就个人而言,我将与环境无关的数据库“常量”放在Configuration.Seed中。再说一次,我从未删除并重新创建我们的数据库作为部署的一部分(即使在我们的开发环境中)。我希望这有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句