У меня есть класс сущности, который я использую для представления результатов sql-запроса. Отображение для класса показано ниже. Тем не менее, насколько я могу судить, nhiberate рассматривает отображение, как если бы это была настоящая таблица базы данных - хотя на самом деле ее нет. В этом случае в базе данных нет ничего, что вообще представляло бы эту сущность. Я использую это для сопоставления запроса, но то же самое можно сказать и о представлении. Нет ли способа указать nhibernate, что нет таблицы, представленной отображением?
<class name="Models.UserTransaction"> <!-- Defaults table name same as Entity even though table doesn’t exist -->
<id name="Id">
<column name="Id" not-null="true" unique="true" />
<generator class="native" />
</id>
<property name="TransType" />
<property name="Date" />
<property name="Amount" />
<property name="Balance" />
</class>
Я отображаю этот запрос, в котором используется определенная пользователем таблица. Я не мог заставить его работать без сопоставления, хотя скопированный мной пример казался мне очевидным.
<sql-query name="UserTransactions">
<query-param name="userId" type="string" />
<return class="Models.UserTransaction" alias="userTx">
<return-property name="TransType" column="TransType" />
<return-property name="Id" column="Id" />
<return-property name="Date" column="TransDate" />
<return-property name="Amount" column="Amount" />
<return-property name="Balance" column="Balance" />
</return>
<![CDATA[
SELECT userTx.[Type] as TransType, userTx.[Id] as Id, userTx.[Date] as TransDate, userTx.[Amount] as Amount, userTx.[Balance] as Balance
FROM dbo.User_AccountStatement(:userId) userTx
]]>
</sql-query>