我使用asp.net mvc core 2创建了一个非常基本的Web应用程序。
此应用程序适用于数据库和实体框架核心。我曾与Migration and Code First stragegy合作过。
一切正常。
我可以使用命令创建数据库:
$ dotnet ef database update
此时我想要做的是在数据库中创建一些数据(来自C#代码)。
我已阅读了一些教程,并创建了一个DataInitializer类,其中包含将创建数据的代码。
我已将此行放在Startup.cs配置方法的末尾:
DataInitializer dataseed = new DataInitializer();
dataseed.InitializeDataAsync(app.ApplicationServices);
问题是每次运行我的应用程序时都会插入数据。
我不想通过C#代码检查数据是否在数据库中,因为它非常危险。
我想要做的是通过迁移触发数据初始化。有可能吗?
由于
答案 0 :(得分:0)
这是我用于将种子数据运行到一个新表中的格式,假设该表中没有数据,它每个表只运行一次。
//run migrations
_context.Database.Migrate();
if(!_context.SomeTable.Any()){
//foreach
//insert
_context.SaveChanges();
}