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



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

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

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

但是,当我尝试使用 sql 查询映射做同样的事情时,我的 EndDateUserType 类失败了,因为在数据读取器中找不到传递给它的列名。这些名称是 NHibernate 生成的名称(例如。DateEnd14_0_),而不是实际的列名 (DateEnd)。

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

您还需要映射映射文件的sql查询部分中的列,如下所示...

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

最新更新