Nhibernate 属性公式不返回结果

Nhibernate 属性公式不返回结果,nhibernate,Nhibernate,我有一个表提交,它有一个到SubmissionType的多对一映射,它有一个到SubmissionTypeYear表的一对多映射。尽管这是一个一对多映射,但对于SubmissionType,始终只有一个SubmissionTypeYear。(不要问我为什么数据库是这样设计的。我没有参与,我只需要让它工作就行了。) 因此,提交将具有SubmissionType将具有SubmissionTypeYear 我的问题是,在Submission.hbm.xml中,我需要一个计算属性,它从Submissio

我有一个表提交,它有一个到SubmissionType的多对一映射,它有一个到SubmissionTypeYear表的一对多映射。尽管这是一个一对多映射,但对于SubmissionType,始终只有一个SubmissionTypeYear。(不要问我为什么数据库是这样设计的。我没有参与,我只需要让它工作就行了。)

因此,提交将具有SubmissionType将具有SubmissionTypeYear

我的问题是,在Submission.hbm.xml中,我需要一个计算属性,它从SubmissionTypeYear中获取一个列值。但我不知道怎么了,当我知道表中有一个值时,它返回一个零

这是我的代码:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Business.Domain" assembly="Business.Domain">
  <class name="Business.Domain.Submission, Business.Domain" table="dbo.Submission" lazy="true" optimistic-lock="version"  >
    <id name="Id" column="SubmissionId">
      <generator class="identity"/>
    </id>
    <discriminator column ="SubmissionTypeCode"></discriminator>

    <many-to-one name="SubmissionTypeMember"  insert="false" column="SubmissionTypeCode"    class="RefSubmissionType" access ="field.camelcase-underscore" cascade ="none" />

    <property name="Year" formula="(SELECT TOP 1 SubmissionTypeYear.Year FROM SubmissionTypeYear WHERE  SubmissionTypeYear.SubmissionTypeCode =  SubmissionTypeCode)" access="field.camelcase-underscore"></property>


</hibernate-mapping>

我认为它没有正确地提取SubmissionTypeCode,所以我也尝试了一个静态字符串,但似乎不起作用

我做错了什么?请帮忙


谢谢

好的,我知道了。问题在于创建的新提交类型。由于它是一个新对象,尚未存储在数据库中,因此无法提取计算字段。它适用于所有现有对象。固定:)

希望这对其他人有帮助