0

我使用动态 linq 来构建查询并且我遇到了DateTime问题

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

  • sr.FromDate - 一个日期时间参数

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

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

例外:

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'

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

谢谢三木

4

1 回答 1

1

假设您的结果有一个 DateTime 列

var z = queryResults
            .Where(result => result.DateTime >= sr.FromDate)
            .ToDictionary(g => g.FirstOrDefault().ServiceInstanceId, g => g.ToList());
于 2012-10-24T09:27:51.750 回答