我正在使用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? 感谢
答案 0 :(得分:1)
我可以一步完成吗?或者......我需要制作两个SaveChanges?感谢
您需要在两个SaveChanges
中执行此操作。没有任何东西可以确保entity 1
之前entity 2
将被保存(除非它们有一些依赖关系),因为您在ChangeTracker中添加实体的顺序无关紧要。
如果EntityT1
和EntityT2
之间存在关联,我建议您使用导航属性,如果这是关键但我不认为这是您正在寻找的方案。