[英]Entity Framework many to many relationship insert not working
我有兩個具有多對多關系的表: ActionPlan
和Responsible
。
當我插入一個新的ActionPlan
和新的Responsible
,表ActionPlanResponsible
上的記錄被正確創建,但是當我嘗試添加一個具有現有Responsible
的新ActionPlan
時,表ActionPlanResponsible
的記錄沒有被創建。
我以這種方式在 Json 中傳遞 ActionPlan 和 Responsible:
{
"What": "Whatttasdasdt",
"Why": "Whyasdyyyy",
"How": "Hoasdwwwww",
"StartDate": "28/09/2015",
"EndDate": "28/09/2015",
"CreateDate": "28/09/2015",
"UpdateDate": "28/09/2015",
"State": "1",
"Where" : "Whasdere",
"Goal": {
"Id": "10"
},
"Responsibles": [{
"Id": "15"
}]
這就是我在 EF 中處理請求的方式...
foreach (var r in actionPlan.Responsibles)
{
context.Responsible.Attach(r);
}
context.ActionPlan.Add(actionPlan);
context.SaveChanges();
transaction.Commit();
ActionPlan 實體:
public long Id { get; set; }
public string What { get; set; }
public string Why { get; set; }
public string How { get; set; }
public DateTime StartDate { get; set; }
public virtual ICollection<Responsible> Responsibles { get; set; }
public DateTime EndDate { get; set; }
public Goal Goal { get; set; }
public virtual ICollection<FileActionPlan> Files { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public string Where { get; set; }
public virtual ICollection<Task> Tasks { get; set; }
責任單位:
public byte State { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
//public virtual ICollection<ActionPlan> ActionPlans { get; set; }
public virtual ICollection<Task> Tasks { get; set; }
public long Id { get; set; }
public Guid PersonId { get; set; }
您還必須將Responsibles
添加到actionPlan.Responsibles
:
foreach (var r in actionPlan.Responsibles)
{
context.Responsible.Attach(r);
actionPlan.Responsibles.Add(r);
}
context.ActionPlan.Add(actionPlan);
這不會創建新的Responsibles
而是建立關聯,因此 EF 知道它應該插入連接記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.