Database 使用实体框架添加子记录时遇到问题

Database 使用实体框架添加子记录时遇到问题,database,asp.net-core-mvc,entity-framework-core,Database,Asp.net Core Mvc,Entity Framework Core,我不理解如何添加实体框架中的记录,该实体框架是(或应该是)集合(父集合)的成员。当我将子类添加到数据库时,它的外键不会用父Id更新。我在模型中缺少了什么,或者在添加子记录后,我需要对上下文做什么来更新键 我有与以下类似的型号: [Table("Parents")] public class ParentClass{ public int Id {get; set;} public virtual ICollection<ChildClass> ChildClasses {ge

我不理解如何添加实体框架中的记录,该实体框架是(或应该是)集合(父集合)的成员。当我将子类添加到数据库时,它的外键不会用父Id更新。我在模型中缺少了什么,或者在添加子记录后,我需要对上下文做什么来更新键

我有与以下类似的型号:

[Table("Parents")]
public class ParentClass{
  public int Id {get; set;}
  public virtual ICollection<ChildClass> ChildClasses {get; set;}
}

[Table("Children")]
public class ChildClass{
  public int Id {get; set;}
  public string Data {get; set;}
}
虽然添加了子记录,但它们具有父类的外键,但我不知道如何让Entity Framework在添加子记录后更新数据库中的该字段


我做错了什么?

ChildClass
至少应该有一个
ParentId
属性(映射到数据库FK字段),也可能有一个
ParentClass
属性。我在这里寻找参考:[link]所以,我应该更改我的ChildClass并包括这样的父类:>公共ParentClass parent{get;set;}也许可以将我的上下文类更改为可以在OnModelCreating中执行此操作?>modelBuilder.Entity().HasOne(p=>p.ParentClass).WithMany(b=>b.ChildClass)@GertArnold已经给了您答案,如果您想查看实体中的导航属性和键,您应该在ChildClass ParentClassId和ParentClass中编写。
using (var context = new DatabaseContext())
{
  //a list of children gets created earlier...
  foreach(var child in children)
  {
   if(child.id == 0) //a new child record
    {
      context.Children.Add(child);
    }
    else
    {
      context.Children.Update(child);
    }
  }
  context.SaveChanges();
}