我需要通过Linq2Entities(VB.NET/VS2012)进行动态选择/分组/排序的最优雅解决方案。
我正在尝试使用System.Linq.Dynamic库(http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx)
这个结构很好用
Dim testQuery= testDB.testTable.Select("New(Field1)").GroupBy("New(Field1)", "it")
但是这个(在blogs / SO上的某个地方发现这个例子)会产生错误:
Dim testQuery= testDB.testTable.Select("New(Field1, Count())").GroupBy("New(Field1, Count())", "it")
错误是“类型'testTable'中没有适用的方法'Count'”
我知道这个库已经死了,但是使用表达式树进行动态查询的官方MS解决方案有点可怕。 : - )
答案 0 :(得分:1)
如果你的目的是为testTable
的每个值检索Field1
中的行数,那么我原本认为你想首先GroupBy
Field1
,然后之后Select
。所以基本上颠倒了Select
和GroupBy
的顺序,并从GroupBy中删除了Count()
。