Получение списка из Session.GetObjects - PullRequest
0 голосов
/ 08 мая 2018

В моем коде есть класс: Person.

Когда я звоню:

var persons = session.GetObjects(session.GetClassInfo(typeof(Person)), criteria, null, 0, false, true);

persons переменная получает ICollection объект.

Вопрос1: Почему невозможно использовать persons как IEnumerable<T>, хотя ICollection расширяет IEnumerable?

Вопрос2: Как создать экземпляр List, используя persons? Я гуглил его, и метод ToList() недоступен для persons, даже using System.Linq; присутствует в коде.

UPDATE

В строке кода:

IEnumerable<Person> persons = (IEnumerable<Person>)session.GetObjects(session.GetClassInfo(typeof(Person)), criteria, null, 0, false, true);

Я получаю ошибку времени выполнения:

Невозможно привести объект типа 'System.Collections.Generic.List 1[System.Object]' to type 'System.Collections.Generic.IEnumerable 1 [TestProject.BusinessObjects.Person].

1 Ответ

0 голосов
/ 08 мая 2018

Я вижу, вы используете метод Session.GetObjects . Согласно документации, этот метод поддерживает внутреннюю инфраструктуру и не предназначен для использования непосредственно из вашего кода .

Чтобы получить объекты из сеанса, я предлагаю вам использовать XPCollection или XPQuery:

XPCollection<Person> persons = new XPCollection<Person>(session1, criteria);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...