используя представление в именованном запросе - PullRequest
0 голосов
/ 08 мая 2009

У меня есть именованный запрос, который использует представление. Я не могу создать сопоставление классов, потому что это представление не имеет столбца Id. Я создал именованный запрос и настроил его возвращать как класс, определяя все возвращаемые значения. Тем не менее, я все еще получаю KeyNotFound Exception. Если я установлю для всех столбцов значение «Возвращает список». Как вы можете сказать NHibernate, чтобы сопоставить это с классом.

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <sql-query name="GetAvailablePermissions" read-only="true">
    <return alias="perm" class="Domain.AcsAvailablePermission, Domain">
      <return-property name="Id" column="PermissionId"/>
      <return-property name="Code" column="Code"/>
      <return-property name="Category" column="Category"/>
      <return-property name="Description" column="Description"/>      
    </return>
    <![CDATA[
    SELECT
      [PermissionId]
      , [Code]
      , [Category]
      , [Description]
    FROM [dbo].[vw_Permission]
    WHERE
      [SiteId] = :SiteId
    ]]>
  </sql-query>
</hibernate-mapping>

1 Ответ

0 голосов
/ 14 мая 2009

Я не нашел пути NHibernate, поэтому я изменил все на return-scalar. Затем взял IList и преобразовал его в IList с помощью LINQ.

...