首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >映射hbm文件时出错“元素'class‘in具有无效子元素'set’in命名空间”

映射hbm文件时出错“元素'class‘in具有无效子元素'set’in命名空间”
EN

Stack Overflow用户
提问于 2018-07-14 13:33:28
回答 1查看 801关注 0票数 0

H想在我的应用程序中使用继承,但是当我运行时,我的hbm映射文件有错误。我的密码在这里

代码语言:javascript
复制
 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; }

我的映射文件是:

代码语言:javascript
复制
    <?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>

我在文件映射'set‘中使用了一个关系标记

我的孩子课是:

代码语言:javascript
复制
public class BachelorStudent : StudentDao
    {
    }
}

下一堂课是:

代码语言:javascript
复制
public class MasterStudent : StudentDao
    {
        public virtual bool Article { get; set; }
    }
}

在我运行这个程序之后,出现了以下错误:

“命名空间‘urn:nhibernate-映射-2.2’中的元素'class‘具有名称空间’urn:nhibernate-映射-2.2‘中的无效子元素'set’。可能需要的元素列表:‘子类、加载程序、sql-插入、sql-更新、sql-删除、筛选器、结果集、查询、sql- query’中的名称空间‘urn:nhibernate-映射-2.2’。”

我该怎么办??

EN

回答 1

Stack Overflow用户

发布于 2019-07-23 05:33:36

需要在子类元素之前定义set元素。即:

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51339987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档