EF6 - 插入多个实体并最后更新

时间:2018-04-10 18:29:09

标签: entity-framework-6

我正在使用EF6,我需要插入2个实体,并在更新后使用第一个数据更新。 这是一个例子:

var entity1 = new EntityT1();
setData(entity1);

var entity2 = new EntityT2();
setData(entity2);

ctx.Set<EntityT1>.Add(entity1);
ctx.Set<EntityT2>.Add(entity2);
ctx.SaveChanges();

//this is the result I would like
entity2.Prop1 = entity1.IdFromDb;

我可以一步完成吗? 要么... 我需要做两个SaveChanges? 感谢

1 个答案:

答案 0 :(得分:1)

  

我可以一步完成吗?或者......我需要制作两个SaveChanges?感谢

您需要在两个SaveChanges中执行此操作。没有任何东西可以确保entity 1之前entity 2将被保存(除非它们有一些依赖关系),因为您在ChangeTracker中添加实体的顺序无关紧要。

如果EntityT1EntityT2之间存在关联,我建议您使用导航属性,如果这是关键但我不认为这是您正在寻找的方案。