C# Nhibernate一对一地将类与自身映射
在这种情况下,我们需要定义一个关系,其中一个类(命名模块)可能与它的前身模块对象相关,也可能与之无关。可以没有前导,也可以没有前导。该类如下所示:C# Nhibernate一对一地将类与自身映射,c#,nhibernate,nhibernate-mapping,C#,Nhibernate,Nhibernate Mapping,在这种情况下,我们需要定义一个关系,其中一个类(命名模块)可能与它的前身模块对象相关,也可能与之无关。可以没有前导,也可以没有前导。该类如下所示: public class Module { public int Id { get; set; } // other stuff here public Module Predecessor { get; set; } } 我
public class Module
{
public int Id
{
get;
set;
}
// other stuff here
public Module Predecessor
{
get;
set;
}
}
我们已经定义了我们的映射,因此Preference是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, STC.EI.JobSubmissionSystem.Data"
无济于事。我的问题是:
我们是否正确映射了它,如果没有,那么我们如何正确映射它?您可以使用元素:
请注意,表中需要一列来定义关系。这是正确的。我只想补充一点,它不编译的原因是您不能在“type”属性中指定域类;您必须使用一个支持“class”属性的元素(如多对一)。@darin-Ahh,感谢您提供的信息,这个解决方案很有效@斯图尔特-有用的提示,谢谢!我们遇到了很多错误,它无法找到具有原始映射的类型
type="STC.EI.JobSubmissionSystem.Data.Domain, STC.EI.JobSubmissionSystem.Data"
<class name="Module">
<Id name="Id">
<generator class="native"/>
</Id>
<many-to-one name="Predecessor" class="Module" column="predecessor_id" />
<class>