实体框架添加所有子实体

时间:2015-06-05 04:16:17

标签: c# entity-framework

我有一个名为quote的表,他有很多服务,每个服务都附有很多人员。

quote:
    public int Id {get; set;}
    pbulic ICollection<Services> services {get;set}

Services:
    public int Id {get;set;}
    public int QuoteId {get;set;}
    [ForeignKey("QutoeId")]
    public Quote quote {get;set;}
    public ICollection<Staff> Staff {get;set;}

Staff:
    public Int Id {get;set;}
    public ServiceId {get;set;
    [ForeignKey("StaffId")]
    public Service service {get;set;}
    public string StaffName {get;set;}

这不是我的真实数据库所以忽略任何拼写错误。 (或不正确的编码礼仪。

我遇到的问题。我想将表保存到数据库中吗? 我有一个Quote对象,有许多服务,有很多员工。

我是否必须通过它们来手动将它们手动添加到数据库中。

我只是尝试过:

dbContext.Quote.Add(quote);
dbContext.SaveChanges();

但是这只将Quote表保存到数据库而不是子表。 我是否必须做一些愚蠢的事情:

 foreach (var staff in Quote.Services.Staff)
 {
     dbContext.Staff.Add(staff)
 }
 foreach (var service in Quote.Services)
 {   
     dbContext.Services.Add(services)
 }

1 个答案:

答案 0 :(得分:0)

您必须简单地将子表添加到dbcontext及其父级。 你可以尝试这个,如下所述:

dbContext.Quote.Add(quote);
foreach (var service in Quote.Services)
{   
    quote.services .Add(service);
    dbContext.Services.Add(service);
}
dbContext.SaveChanges();

同样将staff对象添加到其父服务对象和dbcontext