【发布时间】:2021-03-22 13:30:39
【问题描述】:
我有一个 for 循环来生成多个实体并保存到数据库中。
for(int x = 0; x < 3; x++){
Unit unit = new Unit();
unit.id = 0; //autogenerated value
_context.Unit.Add(unit);
_context.SaveChanges();
Item item = new Item();
item.unitid = unit.id;
_context.Item.Add(item);
_context.SaveChanges();
}
在这种情况下,假设单元输出 id 为 1,2,3 我假设 item.unitid 因此应该是三个项目,并且分别具有 1,2,3 的 unitid 值
实际上发生了什么,我有三个 unitid 为 3 的项目并保存到数据库中。
我尝试了循环内外的 saveChanges 组合。也使用了 EntityState.added 但类似的结果。
【问题讨论】:
-
您应该使用导航属性,例如
Item.Unit = unit。那么就无需设置这些id属性并进行多次SaveChanges调用。
标签: c# database entity-framework-core ef-core-3.1