Nhibernate один-к-одному сопоставляет класс с собой - PullRequest
0 голосов
/ 12 марта 2009

У нас есть ситуация, когда мы хотим определить отношение, в котором класс (с именем Module) может или не может быть связан с объектом Module, который является его предшественником. Там может быть ноль или ни одного предшественника. Класс выглядит так:

public class Module
{
    public int Id
    {
        get;
        set;
    }

    // other stuff here

    public Module Predecessor
    {
        get;
        set;
    }
}

И мы определили наше отображение так, чтобы Predecessor был свойством типа Module следующим образом:

<class name="Module">
    <Id name="Id">
        <generator class="native/>
    </Id
    <property name="Predecessor" type="Module" "unique="true"/>
<class>

Однако мы получаем жалобы на то, что отображение не может быть скомпилировано, потому что не удается найти тип «Модуль». Мы попробовали длинное имя для класса

type="STC.EI.JobSubmissionSystem.Data.Domain"

и полное имя для класса

type="STC.EI.JobSubmissionSystem.Data.Domain, STC.EI.JobSubmissionSystem.Data"

безрезультатно. Мой вопрос:

Правильно ли мы отображаем это, а если нет, то как мы отображаем это правильно?

1 Ответ

2 голосов
/ 12 марта 2009

Вы можете использовать элемент много-к-одному :

<class name="Module">
    <Id name="Id">
        <generator class="native"/>
    </Id>
    <many-to-one name="Predecessor" class="Module" column="predecessor_id" />
<class>

Обратите внимание, что в вашей таблице необходим столбец для определения отношения.

...