我有两个实体Inspection
和User
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
关联而不删除任何一个实体。
谢谢!
答案 0 :(得分:1)
您的虚拟财产就是虚拟财产。它填充了与其对应的外键匹配的记录,通常为ApproverId(除非您使用ForeignKey属性指定了不同的ForeignKey)。
如果您想要删除审批者,则只需将ApproverId设置为null即可。