[英]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.