Работает ли динамический GroupBy вместе с динамическим Где в динамическом LINQ? - PullRequest
0 голосов
/ 07 августа 2010

Я использую эту динамическую библиотеку LINQ вместе с Linq-to-Entities.
Я строю запрос и после этого повторяю его с foreach(object e in query){}

query=db.Table1.Where("it.FieldA>10").Select("it.FieldB"); работает.
query=db.Table1.Where(e=>e.FieldA>10).GroupBy("it.FieldB", "it").Select("key") работает.
Но query=db.Table1.Where("it.FieldA>10").GroupBy("it.FieldB", "it").Select("key") вызывает EntitySqlException с сообщением The query syntax is not valid., near keyword 'FROM', line 2, column 1. в соответствии с оператором foreach.

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

Обратите внимание, что тип db.Table1.Where(e=>e.FieldA>10) равен IQueryable<Table1>, а тип db.Table1.Where("it.FieldA>10") равен System.Data.Objects.ObjectQuery<Table1>.

1 Ответ

0 голосов
/ 09 августа 2010

Нашел, db.Table1.AsQueryable() исправил, поэтому db.Table1.AsQueryable().Where("it.FieldA>10").GroupBy("it.FieldB", "it").Select("key") работает без исключений.

Проблема заключалась в том, что библиотека Microsoft Dynamic Linq расширяет IQueryable<Table1>, поэтому она не действует на ObjectQuery<Table1>, чтоэто тип db.Table1.

...