我有一个Child
模型,其中包含一个名为EmergencyContactId
的属性。此属性是一个可空的GUID,在设置时指向我的Contacts
表(是的,该列在数据库中设置为可为空)。问题是当我拨打_context.Children.Add(newChild)
时,newChild
的{{1}}属性会被EF自动生成为新的GUID,即使它应该为null 。
EmergencyContactId
所以我尝试进入我的var id = newChild.EmergencyContactId; // id is null.
_context.Children.Add(newChild);
id = newChild.EmergencyContactId; // id is a new GUID.
数据库上下文并执行此操作:
OnModelCreating
我认为应该解决问题,但没有这样的运气;该值仍然是自动生成的。我希望EF能够独自离开酒店;如果它为空,那么假设就是这样!
这似乎不应该这么难,但我们在这里。我完全不知道下一步该做什么。
编辑:我的模特
child.Property(props => props.EmergencyContactId)
.HasDefaultValue(null)
.ValueGeneratedNever();
及其配置:
public class Child
{
// other properties
#region EmergencyContact
private Contact _emergencyContact = default(Contact);
public virtual Contact EmergencyContact { get => _emergencyContact; set => _emergencyContact = value; }
#endregion EmergencyContact
#region EmergencyContactId
private Guid? _emergencyContactId;
public Guid? EmergencyContactId { get => _emergencyContactId; set => _emergencyContactId = value; }
#endregion EmergencyContactId
// other properties
}
答案 0 :(得分:3)
此EmergencyContactId
不是关系ID吗?如果是,可能您已将对象(可能称为)EmergencyContact
设置为对象。在这种情况下,EmergencyContactId
也将自动填充EmergencyContact
的ID。