Свободное однонаправленное сопоставление NHibernate один к одному - PullRequest
2 голосов
/ 31 августа 2011

Я не могу получить отношения Один к одному , работающие с Fluent NHibernate. У меня есть таблицы User и UserDetails, и они «разделяют» первичный ключ. Как мне их отобразить?

Это моя последняя / лучшая попытка, которая завершается неудачей с NHibernate.Id.IdentifierGenerationException: попытка присвоить идентификатор из нулевого свойства «один к одному»: пользователь

Пользователь

 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 Ответ

3 голосов
/ 31 августа 2011

Попробуйте это

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

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