У меня есть таблица Submission, у которой есть сопоставление «многие к одному» с SubmissionType, у которого есть сопоставление «один ко многим» с таблицей SubmissionTypeYear.Несмотря на то, что это сопоставление один ко многим, всегда будет только один SubmissionTypeYear для SubmissionType.(Не спрашивайте меня, почему база данных была спроектирована таким образом. Я не был вовлечен, и мне просто нужно заставить ее работать.)
Следовательно, у представления будет 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, поэтому я также попытался использовать статическую строку, но, похоже, она не работает.
Что я делаю не так?Пожалуйста, помогите.
Спасибо