我有一个使用视图的命名查询。我无法创建类映射,因为此视图没有Id列。我创建了一个命名查询并将其设置为将其作为类返回,定义所有返回值。但是,我仍然收到KeyNotFound异常。如果我将所有列设置为它返回List。你如何告诉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>
答案 0 :(得分:0)
我没有找到NHibernate方式所以我将所有内容都更改为return-scalar。然后使用IList并使用LINQ将其转换为IList。