Entity framework 如何获取新创建的子项的id?
获取家长ID非常容易,如下所示: 但是,我在问自己如何获得新创建的子实体(一对多)的ID,其中子实体已添加到子集合中,如:Entity framework 如何获取新创建的子项的id?,entity-framework,asp.net-core,Entity Framework,Asp.net Core,获取家长ID非常容易,如下所示: 但是,我在问自己如何获得新创建的子实体(一对多)的ID,其中子实体已添加到子集合中,如: existingParent.Children.Add(newChild); public int Save(Parent parent) { context.Update(parent); context.SaveChanges(); return ???; } 在Save方法中返回新创建的子项的id是不合理的 对于当前代码,Save不是保
existingParent.Children.Add(newChild);
public int Save(Parent parent)
{
context.Update(parent);
context.SaveChanges();
return ???;
}
在
Save
方法中返回新创建的子项的id是不合理的
对于当前代码,Save
不是保存子属性的唯一目的。让我们假设一些场景,如下所示:
更新Parenet
而不更改Children
属性,您对Save
通过添加多个新的Child
来更新Parenet
,您期望的返回值是多少
更新Parenet
,删除Child
,它将返回什么
您可以考虑在调用<代码>上下文之后,获得新的<代码> ID >代码>外部<代码>公共int保存(父父);代码>
演示代码:
var parent1 = _db.Parent.Include(p => p.Children).FirstOrDefault(p => p.Id == 1);
var child3 = new Child { Name = "N3"};
var child4 = new Child { Name = "N4" };
parent1.Children.Add(child3);
parent1.Children.Add(child4);
_db.Update(parent1);
_db.SaveChanges();
var childId3 = child3.Id;
var childId4 = child4.Id;
一个父项有许多子项,您希望返回哪个子项?关于newChild.Id
?这不管用吗?@itminus:新创造的孩子的id非常感谢陶周-它管用!如果可以的话。。。还有一个问题:如果我使用repository模式,只将父对象传递给Save过程(在控制器中添加子对象)。它是如何工作的?
var parent1 = _db.Parent.Include(p => p.Children).FirstOrDefault(p => p.Id == 1);
var child3 = new Child { Name = "N3"};
var child4 = new Child { Name = "N4" };
parent1.Children.Add(child3);
parent1.Children.Add(child4);
_db.Update(parent1);
_db.SaveChanges();
var childId3 = child3.Id;
var childId4 = child4.Id;