2010-08-06 7 views
0

Linq-to-Entities와 함께 dynamic LINQ library을 사용합니다.
쿼리를 빌드 한 후 그 결과를 foreach(object e in query){}동적 GroupBy는 동적 LINQ의 동적 위치와 함께 작동합니까?

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")foreach 문과 일치하는 The query syntax is not valid., near keyword 'FROM', line 2, column 1. 메시지와 함께 EntitySqlException이됩니다.

어떻게 예외없이 작동시킬 수 있습니까?

db.Table1.Where(e=>e.FieldA>10)의 유형은 IQueryable<Table1>이지만 db.Table1.Where("it.FieldA>10")의 유형은 System.Data.Objects.ObjectQuery<Table1>입니다.

답변

0

찾을 수 없으므로 db.Table1.AsQueryable()이 발견되었습니다. 따라서 db.Table1.AsQueryable().Where("it.FieldA>10").GroupBy("it.FieldB", "it").Select("key")은 예외없이 작동합니다.

문제는 Microsoft 동적 Linq 라이브러리가 IQueryable<Table1>을 확장하므로 db.Table1 유형 인 ObjectQuery<Table1>에 적용되지 않습니다.