如何动态地在linq中制定以下查询

时间:2014-01-05 12:34:44

标签: linq

我想动态制定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.DynamicSystem.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

你自己以来

1 个答案:

答案 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) +),允许您动态地轻松访问生成的成员。