添加新实体后如何播种初始数据?

问题描述 投票:0回答:1

我在MyProject.EntityFrameworkCore项目中注意到了一个Seed文件夹,其中包含将初始数据提供给数据库的代码。

如果我添加代码以使用我的新实体填充数据库,那么代码将在何处以及如何调用?

.NET Core和完整的.NET Framework版本是否以相同的方式工作?

asp.net-core aspnetboilerplate
1个回答
2
投票

运行:

  1. 在应用程序启动时,在PostInitializeYourEntityFrameworkModule方法中调用: public override void PostInitialize() { if (!SkipDbSeed) { SeedHelper.SeedHostDb(IocManager); } }
  2. 如果你构建Migrator项目并运行.exe,在RunMultiTenantExecuter方法中调用: public void Run(bool skipConnVerification) { // ... Log.Write("HOST database migration started..."); try { _migrator.CreateOrMigrateForHost(SeedHelper.SeedHostDb); } // ... }

如果您添加新代码来填充自定义实体,请记得在添加之前进行检查,例如this

var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);
if (defaultEdition == null)
{
    // ...

    /* Add desired features to the standard edition, if wanted... */
}

是的,.NET Core和完整的.NET Framework版本的工作方式相同。

© www.soinside.com 2019 - 2024. All rights reserved.