将导航属性设置为null EF 6

时间:2014-08-06 20:32:14

标签: entity-framework entity-framework-6

我有两个实体InspectionUser

Inspection有一个Approver属性User如此public virtual User Approver { get; set; }

有时候Approver必须设置为null

我这样做

 Inspection rtrn = Context.Inspections.Where(x => x.Id == inspId).SingleOrDefault();
 rtrn.Approver = null;
 rtrn.ApprovalDate = new DateTime();

 base.Update(rtrn); //EF repo

问题是这不会在数据库中将Approver_Id设置为null。事实上,如果我在rtrn.ApprovalDate = new DateTime();处设置断点,我可以看到rtrn.Approver仍然是User类型。它看起来好像忽略了rtrn.Approver = null;一行。

在更高级别,我只想打破Inspection - User关联而不删除任何一个实体。

谢谢!

1 个答案:

答案 0 :(得分:1)

您的虚拟财产就是虚拟财产。它填充了与其对应的外键匹配的记录,通常为ApproverId(除非您使用ForeignKey属性指定了不同的ForeignKey)。

如果您想要删除审批者,则只需将ApproverId设置为null即可。