views:

73

answers:

1

I have a named Query that uses a view. I am unable to create a class mapping because this view does not have a Id column. I created a named query and set it to return it as a class, defining all the return values. However, I still receive a KeyNotFound Exception. If I set all of the columns to It returns the List. How can you tell NHibernate to map this to a class.

<?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>
A: 

I did not find a NHibernate way so I changed everything to return-scalar. Then took the IList and converted it to a IList using LINQ.

Thad