NHibernate XML映射到流畅的映射继承

时间:2015-04-06 19:40:48

标签: xml inheritance nhibernate nhibernate-mapping fluent

我正在将我的NHibernate映射文件从XML更改为Fluent。继承部分只存在一个问题。

我当前(简化)的映射:

  <class name="User" table="[User]" lazy="false">
    <id name="UserID" column="UserID">
      <generator class="native" />
    </id>
    <property name="Type" column="Type" />

    <property name="Email" column="Email" />

    <joined-subclass name="Student" table="Student">
      <key column="UserID"/>
      <property name="Firstname" column="Firstname" />
    </joined-subclass>

    <joined-subclass name="Company" table="Company">
      <key column="UserID"/>
      <property name="Name" column="Name" />
    </joined-subclass>
</class>
</hibernate-mapping>

我的新流利映射:

public class UserMap : ClassMap<User>
    {
        public UserMap()
        {
            Table("[User]");
            Id(x => x.UserID);
            DiscriminateSubClassesOnColumn("Type", 0);

            Map(x => x.Email);
        }
    }

public class StudentMap : SubclassMap<Student>
    {
        public StudentMap()
        {
            Table("[Student]");
            KeyColumn("UserID");
            this.DiscriminatorValue((int)UserType.STUDENT);
            Map(x => x.Firstname);
        }
    }

public class CompanyMap : SubclassMap<Company>
    {
        public CompanyMap()
        {
            KeyColumn("UserID");
            this.DiscriminatorValue((int)UserType.COMPANY);

            Map(x => x.Name);
        }
    }

尝试获取一个用户时出现的错误是:     列名称“名称”无效。     列名称'Firstname'无效。     等

有人知道我做错了什么吗?这是我第一次使用Fluent。 提前谢谢!

0 个答案:

没有答案