【发布时间】:2010-01-29 02:02:46
【问题描述】:
我正在尝试使用 NHibernate 为每个子类继承结构映射一个表,如下所示:
public class BaseClass
{
public virtual IColllection<BaseClassCollection> Collection { get; set; }
}
public class ChildClass : BaseClass
{
public new virtual ICollection<ChildClassCollection> Collection { get; set; }
}
当我尝试从会话中获取 ChildClass 时出现以下错误:
“无法投射 'NHibernate.Collection.Generic.PersistentGenericBag1[BaseClassCollection]' to type 'System.Collections.Generic.ICollection1[ChildClassCollection]' 类型的对象。”
这是我的映射文件:
<class name="BaseClass" table="BaseClassTable">
<bag name="Collection">
<key>
<column name="BaseClassCollectionId" />
</key>
<one-to-many class="BaseClassCollection" />
</bag>
<joined-subclass name="ChildClass" table="ChildClassTable">
<key>
<column name="BaseClassId" />
</key>
<bag name="Collection">
<key>
<column name="ChildClassCollectionId" />
</key>
<one-to-many class="ChildClassCollection" />
</bag>
</class>
当我映射子类时,我需要某种方式来覆盖基类中 Collection 属性的类型。 NHibernate 可以做到这一点吗?
【问题讨论】:
标签: c# nhibernate inheritance