データベースに挿入しようとしています。私は、次の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
を参照提案がありますか?