2016-07-22 6 views
2

データベースに挿入しようとしています。私は、次の2つのエンティティがありますFluent nHibernate外部キーを使用して「nullでないプロパティがnull値または一時的な値を参照しています」

USER:

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

{ 
    "Email": "[email protected]", 
    "Username": "Something123", 
    "UserDescription": { 
     "Firstname": "John", 
     "Lastname": "Doe" 
    } 
} 
:私は次のようなルックスを通過

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

私はそれがカスケードされ、UserDescriptionという子テーブルにも挿入されることを望むユーザーに挿入しようとしましたが、動作しませんでした。だから代わりに私は最初にユーザーに挿入し、UserDescriptionに挿入します(これが理想的かどうかはわかりません)。

私は成功したユーザーに挿入した後UserDescriptionに挿入しようとすると、とにかく、私は次のエラーを取得する:

-nullでないプロパティがnullまたは過渡値Users.Entities.UserDescription.User

を参照

提案がありますか?

答えて

0

誰かが興味がある場合は、UserDescriptionマッピングで「。Constrained()」を削除しましたが、それはうまくいくようでした。私はそれが最善の解決策であるかどうかはわかりませんが!

関連する問題