You shouldn't worry about what value the Id of Parent
will get in order to insert Child
rows. This should be enough:
var parent = new Parent
{
// fill other properties
Children = new List<Child>()
}
parent.Children.add(new Child { /*fill values */);
dbContext.Parents.Add(parent); // whatever your context is named
dbContext.SaveChanges();
For the record, the ID's will be assigned after calling SaveChanges()
, so if you really need the ID before inserting a Child
entity you can always call SaveChanges()
twice.
Again, this shouldn't be necessary though.
By the way, I would recommend making the Foreign Key property from Child
to Parent
a navigation property, so the Child
class would look like:
class Child
{
public int ChildId { get; set; } // identity column
public string ChildName { get; set; }
public virtual Parent Parent { get ; set; } //foreign key to Parent
}
That way you can always access the Child's parent directly without having to retrieve it explicitly from the database yourself (it will be lazy loaded).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…