首页 > 解决方案 > 如何使用 Entity Framework Core 数据迁移将种子数据添加到现有种子数据

问题描述

我继承了一个项目,该项目使用数据迁移 (.NET Core 3) 来使用该EntityTypeBuilder.HasData()方法播种一些数据。代码已经创建了行,并且数据库已经插入了这些行。

我现在想向现有行添加额外的数据行,因此我将这些作为参数添加,包括主键。当迁移代码执行时,新行会被包括在内,但不会向数据中添加任何内容。

这是一个例子 - 建造者是EntityTypeBuilder<entityName>

builder.HasData(new entityName { Id = 1, name = "Fred" }, 
                new entityName { Id = 2, name = "Sam" });

这些已经存在于数据库中。

我现在想在现有数据中再添加 2 行

builder.HasData(new entityName { Id = 1, name = "Fred" }, 
                new entityName { Id = 2, name = "sam" }, 
                new entityName { Id = 3, name = "john" }, 
                new entityName { Id = 4, name = "andrew" });

代码运行没有错误,但表中的数据仍然只有原来的 2 行。

这只是一个例子,实际的种子数据有超过 100 行,我想再添加 40 行。我还需要采取其他步骤来强制添加额外的数据吗?

标签: c#entity-framework-corecore-data-migrationseeding

解决方案


您是否在编辑种子数据后创建了新的迁移?

例如

PM> Add-Migration SeedNewData

应用它:

PM> Update-Database

请参阅使用 Code First 迁移为数据库播种


推荐阅读