У меня есть следующее имя Queryé, результат которого мне нравится сопоставлять с классом.NHibernate Fluent и named Queries
<sql-query name="GetIndustryCodes">
<return class="IndustryCode">
<return-property name="Sector_kategorie" column="Sector_kategorie"/>
<return-property name="Sector_scheme_reference" column="Sector_scheme_reference"/>
<return-property name="Group_Beschreibung" column="Group_Beschreibung"/>
</return>
<![CDATA[
select * from
(
select
lvl1.sprach_iso_cd,
lvl1.kategorie Sector_kategorie,
lvl1.scheme_reference Sector_scheme_reference,
lvl1.Beschreibung Sector_Beschreibung,
lvl2.kategorie Group_kategorie,
lvl2.scheme_reference Group_scheme_reference,
lvl2.Beschreibung Group_Beschreibung,
lvl3.kategorie Industry_kategorie,
lvl3.scheme_reference Industry_scheme_reference,
lvl3.Beschreibung Industry_Beschreibung,
lvl4.kategorie Subindustry_kategorie ,
lvl4.scheme_reference Subindustry_scheme_reference,
lvl4.Beschreibung Subindustry_Beschreibung
from StagingDb.Rds.GR3_S_R10916_TX lvl1
left join StagingDb.Rds.GR3_S_R10916_TX lvl2
on lvl2.sprach_iso_cd = lvl1.sprach_iso_cd
and lvl2.kategorie = 'MSCIS&PGroup'
and lvl1.scheme_reference = substring(lvl2.scheme_reference,1,2)
left join StagingDb.Rds.GR3_S_R10916_TX lvl3
on lvl3.sprach_iso_cd = lvl1.sprach_iso_cd
and lvl3.kategorie = 'MSCIS&PIndustry'
and lvl2.scheme_reference = substring(lvl3.scheme_reference,1,4)
left join StagingDb.Rds.GR3_S_R10916_TX lvl4
on lvl4.sprach_iso_cd = lvl1.sprach_iso_cd
and lvl4.kategorie = 'MSCIS&P'
and lvl3.scheme_reference = substring(lvl4.scheme_reference,1,6)
where lvl1.kategorie = 'MSCIS&PSector'
) t
where t.sprach_iso_cd ='en'
]]>
</sql-query>
Также у меня есть C# класс
public class IndustryCode
{
public virtual string Sector_kategorie { get; set; }
public virtual string Sector_scheme_reference { get; set; }
public virtual string Sector_Beschreibung { get; set; }
public virtual string Group_kategorie { get; set; }
public virtual string Group_scheme_reference { get; set; }
public virtual string Group_Beschreibung { get; set; }
public virtual string Industry_kategorie { get; set; }
public virtual string Industry_scheme_reference { get; set; }
public virtual string Industry_Beschreibung { get; set; }
public virtual string Subindustry_kategorie { get; set; }
public virtual string Subindustry_scheme_reference { get; set; }
public virtual string Subindustry_Beschreibung { get; set; }
}
Теперь в то время как запуск программы я получаю exceptioné неверный или неполный конфигурации был использован при создании SessionFactory. Для получения более подробной информации просмотрите коллекцию PotentialReasons и InnerException.
InnerExceptioné «Указанный ключ отсутствует в словаре».
Если я использую Query без класса return, то он работает хорошо, за исключением того, что я получаю возвращаемое значение, не отображаемое в класс. Но класс определенно находится в сборке. Как я могу сопоставить запрос в классе?
Большое спасибо