Я пытаюсь преобразовать следующий запрос NHibernate, используя dyanmic-экземпляр в IList < t>, а не IList.Передача IList IList <t> с использованием динамического экземпляра
IList<AllName> allNames =
(IList<AllName>)Session.CreateQuery(
@"select new AllName(
name.NameId, name.FirstName, origin.OriginId, origin.Description,
name.Sex, name.Description, name.SoundEx
) from Name name join name.Origin origin")
.SetFirstResult(skip)
.SetMaxResults(pageSize);
Запуск этого я получаю следующее сообщение об ошибке: -
Unable to cast object of type 'NHibernate.Impl.QueryImpl' to type 'System.Collections.Generic.IList`1[Domain.Model.Entities.AllName]'.
Я знаю, что я могу вернуться
IList results = Sesssion.CreateQuery(...
но мои слои услуг ожидают
IList<AllName>
Как могу ли я достичь этого?
Когда вы используете метод расширения .Cast(), вы можете просто добавить '.ToList()'. –
Спасибо, Джон, бросок работал. Есть ли здесь какая-то производительность? Размер моей страницы установлен на 50 записей, поэтому я не возвращаю огромное количество данных. – Rippo
@sander: doh! Почему нет. Я думаю об этом? :) –