动态Linq日期时间在哪里

时间:2012-10-24 09:16:58

标签: c# linq dynamic-linq

即时通讯使用动态linq构建查询,我遇到 DateTime

的问题
  • queryResults-包含上一个查询的结果列表。

  • sr.FromDate-一个DateTime参数

我想要做的是获得大于等于sr.FromDate参数的所有结果

var z = queryResults
            .Where("Min(Datetime) >= @0", sr.FromDate)
            .ToDictionary(g => g.FirstOrDefault().ServiceInstanceId, g => g.ToList());

exeption:

ParseError  ,    '.' or '(' expected

修改

只是澄清我们使用动态linq SR 对象包含字符串int和日期参数 如果参数的值不是null我建立一个查询

编辑2

我弄清楚我的privus问题,但现在我有另一个问题,我使用它来构建查询

  private static string GetQueryTemplet(string criteria)
    {

        switch (criteria)
        {

            case "FromDate":
                return " Min(Track.Datetime) >= {0} ";
            case "ToDate":
                return " Max(Track.Datetime) <=  {0} ";

             default:
                return "";
        }

比将数据传递给

 var z = queryResolts
             .Where(query)
            .ToDictionary(g => g.Key, g => g.Select(h => h.Track));

出于某种原因即可获得此异常

Operator '>=' incompatible with operand types 'DateTime' and 'Int32'

我试图以多种方式解析它,但没有任何作用......

感谢 三木

1 个答案:

答案 0 :(得分:1)

假设您的结果有一个DateTime列

var z = queryResults
            .Where(result => result.DateTime >= sr.FromDate)
            .ToDictionary(g => g.FirstOrDefault().ServiceInstanceId, g => g.ToList());