У меня есть этот запрос nhibernate:
var q =
NHibernateSession.Current.CreateSQLQuery
(
@"SELECT LastestEvents.*
FROM (
SELECT DISTINCT SbQcontainer.Container
FROM HistoricEvents
SbQcontainer WHERE SbQcontainer.LineCompany_Id = :lineCompany) as Sbq
JOIN HistoricEvents as LastestEvents
ON LastestEvents.id = (
SELECT TOP(1) id
FROM HistoricEvents mi
WHERE mi.Container = Sbq.Container and mi.LineCompany_Id = :lineCompany
ORDER BY mi.Date DESC
)"
).SetResultTransformer(Transformers.AliasToBean(typeof(HistoricEvent)));
q.SetParameter("lineCompany",lineCompany.Id);
q.SetCacheable(false);
var results = q.List<HistoricEvent>().ToList();
Он ищет последние события в каждом контейнере для данной lineCompany, он работает, но я не знаю, как установить этот набор результатов в список T HistoricEvent, я пытаюсь эту строку:
.SetResultTransformer(Transformers.AliasToBean(typeof(HistoricEvent)));
Но выдает NHibernate.PropertyNotFoundException: Не удалось найти установщик для свойства 'Event_Id' в классе 'HistoricEvent'.
Есть ли способ сделать это? или, возможно, выполняете этот же запрос с использованием API-интерфейса ICriteria?
Заранее спасибо.