Подтвердить что ты не робот

Свободный NHibernate и один-на-один

В течение (очень) долгого времени я искал пример того, как правильно реализовать сопоставление "один к одному" с Fluent NHibernate.

Большинство ресурсов, которые я нахожу, говорят:

Я думаю, вы имеете в виду много-к-одному

Однако никто на самом деле не дает пример того, как правильно реализовать отношение "один к одному" .

Итак, вы могли бы дать пример сопоставления "один к одному" с Fluent NHibernate?

Примечание. Меня не интересуют люди, говорящие "что ваша модель, вам может понадобиться HasMany". Нет, спасибо, мне просто нужен пример один-к-одному.

Чтобы быть более точным, , я знаю синтаксис. Это единственное, что я смог найти, обыскав меня. То, что я ищу, является более полным примером, включая ((очень) простую) настройку базы данных и все сопоставление всех объектов, которые участвуют в отношениях, которые, как я думаю, будут иметь разумный размер для Stack Overflow.

4b9b3361

Ответ 1

Я решил свою проблему.

Я также написал несколько подробную статью по этой проблеме, которую вы можете найти по адресу: http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/index.html

Вы найдете сценарий, в котором мы хотим иметь отношение "один к одному", схему базы данных, как нам бы хотелось, код модели, поскольку она должна соответствовать требованиям NHibernate, а также сопоставление Fluent, которое соответствует к ситуации.

Ответ 2

these are the two classes.

public class A
{
  public virtual int Id {get;set;}
  public virtual string P1 {get;set;}
  public virtual string P2 {get;set;}
  public virtual string P3 {get;set;}
  public virtual B child { get; set; }
}

public class B
{
  public virtual int Id {get;set;}
  public virtual string P4 {get;set;}
  public virtual string P5 {get;set;}
  public virtual string P6 {get;set;}
  public virtual A parent;
}     

это должно быть добавлено в свободной конфигурации.

public AMap()
    {
      /* mapping for id and properties here */
      HasOne(x => x.child)
          .Cascade.All();
    }

    public BMap()
    {
      /* mapping for id and properties here */
      References(x => x.parent)
          .Unique();
    }

Ответ 4

HasOne(x => x.Prop)