繁体   English   中英

将实体添加到上下文时保留GUID为null

[英]Leave GUID null when adding entity to context

我有一个Child模型,它有一个名为EmergencyContactId的属性。 此属性是一个可以为空的GUID,在设置时指向我的Contacts表(是的,该列在数据库中设置为可为空)。 问题是,当我调用_context.Children.Add(newChild)newChildEmergencyContactId属性会被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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM