我想动态制定1)查询,如2)
所示1)
Select col1, Sum(col2)
from t1
where col3 = 1
and co11 between '01 jan 2009' and '31 dec 2013'
group by co11
2) 我想在2012年制定以下内容(linq to entity)
" select "+ @selectclause + " from t1 where " + whereclause
有人建议我,上述查询可以使用http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx
制定任何机构都可以使用System.linq.Dynamic
或System.Linq.Expression
来制定吗?由于时间不够,我无法做到。
我正在尝试使用System.Linq.dynamic
var var1 = context.table1.Where(strWhereClause)
.Where(i => i.co11 >= dtDateFrom && i.co11 <= dtDateTo).GroupBy("new(" + varGroupBy + ")").Select("new(" + varAggregateCol + ")");
请告诉我,System.Linq.Expression
是否可以对我的一堆查询进行讨论
然后我应该使用System.Linq.Dynamic
还是应该优先考虑System.Linq.Expression
。
你自己以来
答案 0 :(得分:0)
以下是一个示例:
var query = t1.Where("col3 = 1 AND col1 >= @0 AND col1 <= @1", dtDateFrom, dtDateTo)
.GroupBy("col1")
.Select(varAggregateCol)
虽然标准的Dynamic Linq库只返回一个难以使用的IQueryable,但我一直在维护一个更新的库(https://www.nuget.org/packages/System.Linq.Dynamic.Library),它返回IQueryable {dynamic}(假设你使用的是.NET 4.0) +),允许您动态地轻松访问生成的成员。