问题描述
给定基于同一表的基类和两个子类并带有一个标识符,我将两个不同的列映射到相同的属性-每个子类中一个。我本以为NH会考虑到这一点而生成查询,但事实并非如此。这是类,映射和查询:
课程
env path.repo=foo somecommand ...
映射
env
env | awk -F= '/path.repo/ {print $2}'
我曾期望NH为第一个查询生成sql,该查询在discA ='A'的记录的ValueA中查找ValueA,在disc ='B'的记录中查找ValueB。相反,我得到了
namespace Entities.Domain
{
public class Base
{
public virtual int Id { get; set; }
public virtual string Value { get; set; }
}
public class ChildA : Base
{
}
public class ChildB : Base
{
}
}
其他两个查询的行为与我期望的一样:
<hibernate-mapping default-cascade="save-update" assembly="Entities" namespace="Entities.Domain" xmlns="urn:nhibernate-mapping-2.2">
<class name="Base" table="Base">
<id name="Id" type="Int32">
<column name="ID" not-null="true" precision="10" scale="0" sql-type="int" />
<generator class="identity" />
</id>
<discriminator>
<column name="disc" not-null="true" sql-type="char" />
</discriminator>
<subclass name="ChildA" extends="Base" discriminator-value="A">
<property name="Value" type="AnsiString" column="valueA"/>
</subclass>
<subclass name="ChildB" extends="Base" discriminator-value="B">
<property name="Value" type="AnsiString" column="valueB"/>
</subclass>
</class>
</hibernate-mapping>
我设置错了吗? NH是否不处理这种情况?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)