我正在使用带有存储过程的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>