Свободный NHibernate: возвращение строк в словарях - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь получить словарь как возвращаемое значение из запроса, и Мне не очень повезло со следующим:

IQuery query = session.CreateQuery("SELECT Email, COUNT(Id) as IdCount FROM AccountDataModel WHERE Email = :Email")
                        .SetParameter(":Email", model.Email); 

IList<T> list = query.List<T>();

IDictionary<string, object> data = list.ToDictionary<string, object>(x => x); //Error, no method argument matches.

Метод ToDictionary запрашивает тип Func. Я нашел определение для Func, здесь .

Увидев это, я попробовал следующее:

list.ToDictionary<string, object>(y => y.As<string>().As<object>());

Я получаю сообщение об ошибке ...

Есть ли прямой способ сделать это, или это более хакерская методология, которая способствует этому?

1 Ответ

0 голосов
/ 10 ноября 2011

Я думаю, вам нужно заменить фактический тип параметра вместо универсального параметра типа T в коде IList<T> list = query.List<T>();

что-то вроде IList<Email> list = query.List<Email>();

Затем, когда вы вызываетеToDictionary укажите ключ для it.ie .. IDictionary<string, Email> data = list.ToDictionary(x => x.emailId);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...