0

我们有一种情况,我们想要定义一个关系,其中一个类(名为 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"

无济于事。我的问题是:

我们是否正确地映射了它,如果没有,那么我们如何正确地映射它?

4

1 回答 1

2

您可以使用多对一元素:

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

请注意,您需要在表中有一列来定义关系。

于 2009-03-12T17:31:52.407 回答