将表的主键映射到Nhibernate中的同一个表

时间:2014-05-08 05:00:59

标签: nhibernate nhibernate-mapping visual-studio-2013

我有一个表名为SchoolStricture,其中主键是“ID”,另一个表是“ParentStructureEntityID”,它存储同一个表的主键。 此表的目的是创建树结构。在此期间,父母的id将存储在此“ParentStructureEntityID”中。我是NHibernate的初学者。 如何在我的.hbm.xml文件中映射这两个feild。

请帮帮我......

1 个答案:

答案 0 :(得分:0)

你的xml映射将是这样的:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

  <class name="SchoolStructure" table="SchoolStructure">
    <id name="ID">
      <column name="ID"/>
      <generator class="native" />
    </id>
    <many-to-one name="ParentStructure" column="ParentStructureEntityID" />
  </class>
</hibernate-mapping>

你的课程将是:

public class SchoolStructure
{
    public virtual int ID {get; private set;}
    public virtual SchoolStructure ParentStructure {  get; set;}
}

这对初学者来说当然是。理想情况下,您应该以适当的方式覆盖GetHashCode和Equals。最后,我谦卑地建议使用代码映射而不是xml映射。祝你好运!