在最简化的版本中,这是我的问题
public class D{
public List<A> ListofA {get;set;}
}
public interface A{
}
public class B implements A{
}
public class C implements A{
}
class B
映射到表B
class C
映射到表C
A只是一个界面,不会映射到任何表格。
如何定义D - &gt;之间的多态(many-to-many
)关联。 A
我将NHibernate
与FluentMapping
一起使用。
答案 0 :(得分:0)
我试图回答我自己的问题。 不过,我想找出解决此问题的更好/更合理解决方案。
这是我的解决方案:
Class D
我将class D
重新设计为
public class D {
public List<MagicObj> ListofA {get;set;}
}
//New Entity added which was not there in the question before.
public class MagicObj{
public A ActualEntity{get;set;}
}
其余实体没有变化。
public interface A{
}
public class B implements A{
}
public class C implements A{
}
此设计更改应该允许我映射
用于上述重新设计的类结构
D->MagicObj as HasMany(x=>x.ListofA)
MagicObj->A as ReferenceAny(x=>x.ActualEntity)
.EntityIdentifierColumn("EntityType")
.EntityIdentifierColumn("EntityId");
猜猜我选择使用在Class D
和Class A
之间添加新关系
我无法找到直接在Fluent中映射它的方法。