c# - 如何使用 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 行。我还需要采取其他步骤来强制添加额外的数据吗?
解决方案
您是否在编辑种子数据后创建了新的迁移?
例如
PM> Add-Migration SeedNewData
应用它:
PM> Update-Database
推荐阅读
- c - 当我们在 C 中声明一个静态向量时,是否存储了指向该向量的指针?
- clojure - 如何找到使用 cljsjs 模块的全局名称?
- c# - Xamarin 进入行为和 INotifyPropertyChanged 崩溃
- javascript - 我们可以将大型 ajax 调用拆分为多个较小的调用以更快地加载数据吗?
- reactjs - 我如何才能进入将由 a 渲染的道具
标签?
- java - 自定义视图的自定义颜色属性上的Android三元运算符
- python - RaspberryPi 在预期条件下的 Selenium 超时
- c - 从设备驱动程序的 C 代码中“调用”特定函数
- c++ - 编译 gcc-7.3.0 时未找到 uint64_t 或 int64_t 错误
- python-3.x - 2-sum 问题:给定一个未排序的整数列表,找出两个元素的总和是否为给定的目标。如何让我的代码更 Pythonic?