流畅的NHibernate Uni-Directional一对一映射

时间:2011-08-31 15:20:52

标签: nhibernate fluent-nhibernate one-to-one

我无法与Fluent NHibernate合作One-to-One。我有User和UserDetails表,他们'共享'主键。我该如何映射它们?

这是我最新的/最佳尝试,但是由于 NHibernate.Id.IdentifierGenerationException失败:尝试从null一对一属性中分配id:User

用户

 protected UserMap()
{
        Table("user");
        Id(x => x.Id)
        .Column("user_key")
       .GeneratedBy.GuidComb().UnsavedValue(Guid.Empty);

         References(x => x.UserDetail)
        .PropertyRef(x=>x.User)
        .Column("user_key")
        .Not.Insert().Not.Update().Cascade.All();

}

UserDetail

protected UserDetailMap()
{
     Table("user_detail");
     Id(x => x.Id).Column("user_key")
        .GeneratedBy.Foreign("User")
        .UnsavedValue(Guid.Empty);

     References(x => x.User)
        .Column("user_key")
        .Not.Insert().Not.Update().Unique().Cascade.None();

}

1 个答案:

答案 0 :(得分:3)

试试这个

protected UserDetailMap()
{
    Table("user_detail");
    Id(x => x.Id)
       .Column("user_key")
       .GeneratedBy.Foreign("User")
       .UnsavedValue(Guid.Empty);

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