我正在将我的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。 提前谢谢!