簡體   English   中英

帶有外鍵的Fluent nHibernate“非null屬性引用了null或瞬態值”

[英]Fluent nHibernate “not-null property references a null or transient value” with Foreign Key

我正在嘗試插入數據庫。 我有以下兩個實體:

用戶:

public class User
{
    private UserDescription _userDescription;

    public virtual uint Id { get; set; }
    public virtual string Email { get; set; }
    public virtual string Username { get; set; }

    public virtual UserDescription UserDescription
    {
        get { return _userDescription; }
        set { _userDescription = value; }
    }

    public virtual void Add(UserDescription userDescription)
    {
        if (_userDescription != null)
        {
            _userDescription.User = null;
        }
        _userDescription = userDescription;
        _userDescription.User = this;
    }

    public class UserMap : ClassMap<User>
    {
        public UserMap()
        {
            Table("users");

            Id(x => x.Id).GeneratedBy.Identity();
            Map(x => x.Email).Not.Nullable();
            Map(x => x.Username).Not.Nullable();

            HasOne(x => x.UserDescription).Cascade.All().LazyLoad();
        }
    }
}

USERDESCRIPTION

public class UserDescription
{
    public virtual uint Id { get; set; }
    public virtual User User { get; set; }
    public virtual uint UserId { get; set; }
    public virtual string Firstname { get; set; }
    public virtual string Lastname { get; set; }

    public class UserDescrptionMap : ClassMap<UserDescription>
    {
        public UserDescrptionMap()
        {
            Table("usersdescription");

            Id(x => x.Id).GeneratedBy.Identity();

            Map(x => x.UserId);
            Map(x => x.Firstname);
            Map(x => x.Lastname);

            HasOne(x => x.User).Constrained().ForeignKey();
        }
    }
}

我通過的JSON如下所示:

{
   "Email": "Example3@gmail.com",
   "Username": "Something123",
   "UserDescription": {
       "Firstname": "John",
       "Lastname": "Doe"
   }
}

我嘗試對User進行插入,希望它可以向下層疊並插入子表UserDescription中,但這沒用。 因此,我先插入用戶,然后再插入UserDescription(不確定這是否理想)。

無論如何,當我成功插入到User后嘗試插入UserDescription時,出現以下錯誤:

not-null屬性引用null或瞬態值Users.Entities.UserDescription.User

有什么建議么?

如果有人感興趣,我在UserDescription映射中刪除了“ .Constrained()”,這似乎可行。 雖然我不知道這是否是最好的解決方案!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM