0

在最简化的版本中,这是我的问题 在此处输入图像描述

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 只是一个接口,没有映射到任何表。

如何定义many-to-manyD -> A 之间的多态 ( ) 关联

我正在NHibernate使用FluentMapping.

4

1 回答 1

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 中映射它的方法。

于 2011-10-26T18:27:22.543 回答