簡體   English   中英

映射hbm文件時出現錯誤“元素'class'在名稱空間中具有無效的子元素'set'”

[英]error “The element 'class' in has invalid child element 'set' in namespace ” when mapping hbm file

H想在我的應用程序中使用繼承,但是當我運行時,我的hbm映射文件有錯誤。 我的代碼在這里

 public class StudentDao
    {

        public virtual int Id { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string LastName { get; set; }
        public virtual StudentDegreeType Degree { get; set; }
        public virtual string Field { get; set; }
        public virtual IEnumerable<StudentCourse> StudentCourses { get; set; }

我的映射文件是:

    <?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="Tosan.Sevrice.DataAccess" namespace="Tosan.Sevrice.DataAccess.Dao" xmlns="urn:nhibernate-mapping-2.2">
  <class name="StudentDao" table="STUDENTT" lazy="true" >
    <id name="Id" column="ID" >
      <generator class="increment"> </generator>
    </id>
    <discriminator column="Degree"/>

    <property name="FirstName" column="FIRSTNAME" />
    <property name="LastName" column="LASTNAME" />
    <!--<property name="Degree" column="DEGREE" />-->
    <property name="Field" column="FIELD" />

    <subclass name="MasterStudent" discriminator-value="1">
         <property name="َArticle"  />
    </subclass>
    <subclass name="BachelorStudent" discriminator-value="2">

    </subclass>

    <set name="StudentCourses" table="StudentCourse" inverse="true" cascade="all,delete-orphan">
      <key column="ID"/>
      <one-to-many class="StudentCourse"/>
    </set>

  </class>
</hibernate-mapping>

我在文件映射“設置”中使用了關系標簽

我的孩子班是:

public class BachelorStudent : StudentDao
    {
    }
}

下一個孩子班:

public class MasterStudent : StudentDao
    {
        public virtual bool Article { get; set; }
    }
}

在我運行此錯誤波紋管出來后:

“名稱空間'urn:nhibernate-mapping-2.2'中的元素'class'在名稱空間'urn:nhibernate-mapping-2.2'中具有無效的子元素'set'。可能的元素列表:'子類,加載器,sql-insert ,命名空間“ urn:nhibernate-mapping-2.2”中的sql-update,sql-delete,過濾器,結果集,查詢,sql-query”。

我該怎么辦??

set元素需要在子類元素之前定義。 即:

<set name="StudentCourses" table="StudentCourse" inverse="true" cascade="all,delete-orphan">
  <key column="ID"/>
  <one-to-many class="StudentCourse"/>
</set>

<subclass name="MasterStudent" discriminator-value="1">
     <property name="َArticle"  />
</subclass>
<subclass name="BachelorStudent" discriminator-value="2">

</subclass>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM