【发布时间】:2011-12-15 01:17:30
【问题描述】:
使用 NHibernate 和 Fluent 映射。
我们有一个实现接口 (IGroupable) 的类 (GroupAssignment) 的属性 (Groupable)。同一类的另一个属性是枚举 (ItemType),它指定 IGroupable 的来源,即哪个表。
我们能否映射此配置,以便 NHibernate 填充 IGroupable 属性,并根据 Enum 鉴别器链接到正确的表?如果是这样,我们怎样才能做到这一点?
请注意 IGroupable 属性与 GroupAssignment 类是一对一的关系。
public class GroupAssignment
{
public virtual new long ID { get; private set; }
public virtual Group Group { get; set; }
public virtual TypeEnum.TypeGroupItem ItemType { get; set; }
public virtual IGroupable Groupable { get; set; }
}
理想情况下,NHibernate 应该从
获取 IGroupable
当 ItemType == 表 A 时,表 A,
TableB 当 ItemType == TableB 等时。
我还应该补充一点,由 ItemType 枚举指向的每个表都映射到实现 IGroupable 接口的类。
【问题讨论】:
标签: c# nhibernate interface fluent-nhibernate nhibernate-mapping