每个类层次结构的休眠表,映射隐藏基本类成员的派生类成员

问题描述

||
class FooBase{...}
class FooDerived : FooBase {...}

class BaseContainer
{
    public virtual FooBase Foo {get;set;}
}

class DerivedContainer : BaseContainer
{
    public virtual new FooDerived Foo {get;set;}
}
休眠映射选项 下面的选项1 无法在NHibernate的a / c上持续存在,无法在xml中生成其他成员声明(索引超出范围错误
   <class name=\"BaseContainer\" discriminator-value=\"0\">

         <discriminator column=\"ContainerType\" type=\"int\" />

         <many-to-one name=\"Foo\"
                      foreign-key=\"...\"
                      class=\"FooBase\"
                      column=\"FooId\"
                      unique=\"true\"/>

          <subclass name=\"DerivedContainer\"  discriminator-value=\"1\">

               <many-to-one name=\"Foo\"
                            foreign-key=\"...\"
                            class=\"FooDerived\"
                            column=\"FooId\"

                            unique=\"true\"/>
          </subclass>

   </class>
选项2独立映射! 提取操作错误,不区分类
   <class name=\"BaseContainer\" discriminator-value=\"0\">

         <discriminator column=\"ContainerType\" type=\"int\" />

         <many-to-one name=\"Foo\"
                      foreign-key=\"...\"
                      class=\"FooBase\"
                      column=\"FooId\"
                      unique=\"true\"/>

   </class>

   <class name=\"DerivedContainer\"  discriminator-value=\"1\">

        <many-to-one name=\"Foo\"
                     foreign-key=\"...\"
                     class=\"FooDerived\"
                     column=\"FooId\"
                     unique=\"true\"/>

  </class>
卡住,将不胜感激任何指针,尽管我知道如果通过每个子类的表完成此操作很容易,但是可以通过每个类层次结构的表来实现上述任何方法     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)