使用NHibernate时,如何在使用存储过程时填充复杂类型?

时间:2011-05-16 10:51:44

标签: nhibernate stored-procedures nhibernate-mapping

我正在使用NHibernate和存储过程,但是我在填充复杂类型时遇到了问题。

当不使用存储过程时,我会像这样设置映射...

 <property name="RoleEndDate"
  type="Mdl.Common.Persistence.EndDateUserType, Mdl.Common.Persistence">
  <column name="DateEnd"/>
  <column name="DateEndAssumed"/>
</property>

然而,当我尝试使用sql-query映射时,我的EndDateUserType类失败,因为在数据读取器中找不到传递给它的列名。名称是NHibernate生成的名称(例如DateEnd14_0_),而不是实际的列名称(DateEnd)。

使用存储过程运行时是否可以映射到复杂类型?

1 个答案:

答案 0 :(得分:1)

您还需要映射映射文件的sql-query部分中的列,如此...

<return-property name="RoleEndDate">
    <return-column name="DateEnd" />
    <return-column name="DateEndAssumed" />
  </return-property>