【问题标题】:Database initialization in asp.net mvc core 2asp.net mvc core 2中的数据库初始化
【发布时间】:2018-05-16 22:35:24
【问题描述】:

我用 asp.net mvc core 2 创建了一个非常基本的 Web 应用程序。

此应用程序与数据库和实体框架核心一起使用。我曾使用过迁移和代码优先策略。

一切正常。

我可以用命令创建数据库:

$ dotnet ef database update

此时我想做的是在数据库中创建一些数据(来自 C# 代码)。

我已经阅读了一些教程,并创建了一个 DataInitializer 类,其中包含将创建我的数据的代码。

我已将此行放在 Startup.cs 配置方法的末尾:

    DataInitializer dataseed = new DataInitializer();
    dataseed.InitializeDataAsync(app.ApplicationServices);

问题是每次我运行我的应用程序时都会插入数据。

我不想通过 C# 代码检查数据是否在数据库中,因为这非常危险。

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

谢谢

【问题讨论】:

    标签: entity-framework-core


    【解决方案1】:

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

     //run migrations 
    _context.Database.Migrate();
    
    if(!_context.SomeTable.Any()){
       //foreach 
         //insert
      _context.SaveChanges();
    }
    

    【讨论】:

      猜你喜欢
      • 2016-09-03
      • 2018-09-27
      • 2018-02-18
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 2019-10-15
      • 2021-10-25
      • 2018-02-10
      相关资源
      最近更新 更多