故事:我有类用户和类组织:用户。 我没有使用这些类的任何映射,让FNH做自动映射。 然后,我添加
public class OrganizationMap : IAutoMappingOverride<Organization>
{
public void Override(AutoMap<Organization> mapping)
{
}
}
注意,这里是没有覆盖。 所以,我没想到在FNH行为的任何变化。 但是我得到这个(过程模式实际出口):
NHibernate.MappingException:(XmlDocument的)(2,4):XML验证错误:元素命名空间 '类' '瓮:NHibernate的映射-2.2' 具有不完整的内容。 可能元素的列表预计:“元,子查询,高速,同步,评论,的tuplizer,ID,复合ID”命名空间“金塔:NHibernate的映射 - 2.2”。
生成的Orders.Core.Organization.hbm.xml真的很空:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="">
<class name="Orders.Core.Organization, Orders.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="Organizations" xmlns="urn:nhibernate-mapping-2.2" />
</hibernate-mapping>
所以,当我回顾我的想法User.hbm - 我需要重写组织在基类中是这样的:
public class UserMap : IAutoMappingOverride<User>
{
public void Override(AutoMap<User> mapping)
{
mapping.JoinedSubClass<Organization>("ColumnId", m => {...}
);
}
}
但是,我会更好地喜欢做这在组织一个单独的映射覆盖类...毕竟,什么将成为映射,如果我有5子类都在一个覆盖方法。
这可能吗?