我使用动态 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'
我试图以多种方式解析它,但没有任何效果......
谢谢三木