Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何获取新创建的子项的id?_Entity Framework_Asp.net Core - Fatal编程技术网

Entity framework 如何获取新创建的子项的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不是保

获取家长ID非常容易,如下所示:

但是,我在问自己如何获得新创建的子实体(一对多)的ID,其中子实体已添加到子集合中,如:

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;