我将这个dynamic LINQ library与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>
。
答案 0 :(得分:0)
找到它,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
的{{1}}生效。