Динамический запрос для немедленного выполнения? - PullRequest
4 голосов
/ 13 марта 2010

Я использую пакет MSDN Dynamic linq to sql. Позволяет использовать строки для запросов.

Но возвращаемый тип - IQueryable, а не IQueryable<T>. У меня нет метода ToList().

Как я могу выполнить это немедленное выполнение без перечисления вручную по IQueryable?

Моя цель - привязать данные к событию Selecting в источнике данных linqtosql, которое генерирует исключение удаленного текста данных. Однако я могу установить запрос в качестве источника данных в виде сетки.

Любая помощь с благодарностью! Спасибо.

Динамический linq to sql - это пример из Visual Studio.

1 Ответ

2 голосов
/ 13 марта 2010

Разница между IQueryable и IQueryable<T> заключается в том, что второй печатается, а первый - нет. Для преобразования IQueryable в IQueryable<T> вы можете использовать метод Cast<T>().

IQueryable myQueryable = ...;
IQueryable<MyType> myTypedQueryable = myQueryable.Cast<myQueryable>();
IList<MyType> myList = myTypedQueryable.ToList();

Очевидно, что содержимое myQyeryable должно быть преобразовано в MyType. Чтобы выбрать экземпляры определенного типа, вы можете использовать метод TypeOf<T>() перед выполнением приведения.

...