[英]Leave GUID null when adding entity to context
我有一个Child
模型,它有一个名为EmergencyContactId
的属性。 此属性是一个可以为空的GUID,在设置时指向我的Contacts
表(是的,该列在数据库中设置为可为空)。 问题是,当我调用_context.Children.Add(newChild)
, newChild
的EmergencyContactId
属性会被EF自动生成为新的GUID,即使它应该为null。
var id = newChild.EmergencyContactId; // id is null.
_context.Children.Add(newChild);
id = newChild.EmergencyContactId; // id is a new GUID.
所以我尝试进入我的OnModelCreating
我的数据库上下文并执行此操作:
child.Property(props => props.EmergencyContactId)
.HasDefaultValue(null)
.ValueGeneratedNever();
我认为应该解决问题,但没有这样的运气; 该值仍然是自动生成的。 我希望EF能够独自离开酒店; 如果它是null,它应该是那样的!
这似乎不应该这么难,但我们在这里。 我完全不知道下一步该做什么。
编辑:我的模特
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
}
及其配置:
child.HasOne(props => props.EmergencyContact)
.WithMany()
.HasForeignKey(props => props.EmergencyContactId)
.HasPrincipalKey(contact => contact.Id);
这个EmergencyContactId
不是关系id吗? 如果是,可能您已将对象(可能称为) EmergencyContact
设置为对象。 如果是这样的话,则EmergencyContactId
将与的ID来自动填写过于EmergencyContact
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.