当数据有关系时播种数据

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

所以我需要为每个实体创建它自己的种子类。 当实体存在某种层次结构时,问题就出现了,比如一个实体与另一个实体有关系,第二个实体与第三个实体有关系,依此类推。

例如我有 4 个实体:

实体1

  • 身份证
  • 姓名

实体2

  • 身份证
  • 姓名

实体3

  • 身份证
  • 实体1Id
  • 实体2Id

实体4

  • 身份证
  • Entity3Id

当我播种实体1和实体2时,我还为实体分别创建两个枚举。该枚举将包含实体的 id。 在播种实体3时,我从第一个和第二个枚举中获取所有值,然后使用循环在实体3实体中播种此Entity1Id和Entity2Id属性。

此刻一切都很棒。 但问题是 Entity4 使用 Entity3Id ,我无法指定。对于这个实体,我无法创建将保存其 id 的枚举,因此我可以将它用于 Entity4 实体中的 Entity3Id。

我该如何解决这个问题。 只需要以某种方式从 Entity3 获取所有 id 并在 Entity4 实体中设置 Entity3Id 属性。

database entity-framework-core relationship seed
1个回答
0
投票

就您而言,

Entity3
Entity4
有关系。可以直接添加到Entity3的导航属性中。

即:

// `Entity3` have one to many relationship with `Entity4`
entity3.Entities4.Add(entity4);
dbContext.Add(entity3);
await dbContext.SaveChangeAsync();
© www.soinside.com 2019 - 2024. All rights reserved.