NHibernate Many-To-One или я что-то упустил? - PullRequest
1 голос
/ 18 января 2012

Я уже некоторое время борюсь с NHibernate 3.2, и все, чего я пытаюсь достичь, это то, что, на мой взгляд, должно быть относительно простым, но не могу найти пример кода для.

Все, что я хочу иметь 2 объекта.

public class ObjectA { 
    public int Id;
    public string PropertyA;
    public ObjectB PropertyB;
}

public class ObjectB {
    public int Id;
    public string PropertyA;
}

А на стороне базы данных я хочу

----
Table ObjectA
----
Column Id
Column PropertyA
Column ObjectBId
----

----
Table ObjectB
----
Column Id
Column PropertyA
----

Я не могу заставить это работать, и все же это должно быть тривиально. Я пытался использовать компоненты, но они, кажется, хотят создать только одну таблицу со всеми полями из ObjectA и ObjectB вместе. Я попытался использовать сопоставление один к одному, но он хочет, чтобы я скомпрометировал мою объектную модель, вернув свойство ссылки в ObjectB обратно в ObjectA.

Ответы [ 2 ]

4 голосов
/ 18 января 2012

Это действительно простой случай:

<class name="ObjectA">
   <id name="Id" access="property">
      <generator class="identity" />
   </id>

   <property name="PropertyA" />
   <many-to-one name="PropertyB" column="ObjectBId" class="ObjectB" />
</class>

<class name="ObjectB">
   <id name="Id" access="property">
      <generator class="identity" />
   </id>

   <property name="PropertyA" />
</class>
1 голос
/ 18 января 2012

Должно быть просто:

<class name="ObjectA">
  [Id and other properties]
  <many-to-one name="PropertyB" column="ObjectBId"/>
</class>

<class name="ObjectB">
  [Id and other properties]
</class>
...