asp.net mvc core 2中的数据库初始化

时间:2017-12-03 08:53:34

标签: entity-framework-core

我使用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#代码检查数据是否在数据库中,因为它非常危险。

我想要做的是通过迁移触发数据初始化。有可能吗?

由于

1 个答案:

答案 0 :(得分:0)

这是我用于将种子数据运行到一个新表中的格式,假设该表中没有数据,它每个表只运行一次。

 //run migrations 
_context.Database.Migrate();

if(!_context.SomeTable.Any()){
   //foreach 
     //insert
  _context.SaveChanges();
}