Ich benutze Dynamic Linq, um eine Abfrage zu erstellen, und ich habe ein Problem mit DateTime
queryResults - enthält eine Liste der Ergebnisse einer vorherigen Abfrage.
sr.FromDate - ein DateTime-Parameter
Ich versuche, das gesamte Ergebnis zu erhalten, das größer und gleich dem Parameter sr.FromDate ist
var z = queryResults
.Where("Min(Datetime) >= @0", sr.FromDate)
.ToDictionary(g => g.FirstOrDefault().ServiceInstanceId, g => g.ToList());
Ausnahme:
ParseError , '.' or '(' expected
BEARBEITEN:
Nur um zu verdeutlichen, dass wir ein dynamisches linq SR- Objekt verwenden, das String-Int- und Datumsparameter enthält, wenn die Werte der Parameter nicht null sind, wird eine Abfrage erstellt
BEARBEITEN 2
Ich finde mein Privus-Problem heraus, aber jetzt habe ich ein anderes Problem. Ich benutze dieses, um die Abfrage zu erstellen
private static string GetQueryTemplet(string criteria)
{
switch (criteria)
{
case "FromDate":
return " Min(Track.Datetime) >= {0} ";
case "ToDate":
return " Max(Track.Datetime) <= {0} ";
default:
return "";
}
als ich die Daten an weitergebe
var z = queryResolts
.Where(query)
.ToDictionary(g => g.Key, g => g.Select(h => h.Track));
Aus irgendeinem Grund bekomme ich diese Ausnahme
Operator '>=' incompatible with operand types 'DateTime' and 'Int32'
Ich habe versucht, es auf viele Arten zu analysieren, aber nichts funktioniert ...
danke miki
Angenommen, Ihre Ergebnisse haben eine DateTime-Spalte
var z = queryResults
.Where(result => result.DateTime >= sr.FromDate)
.ToDictionary(g => g.FirstOrDefault().ServiceInstanceId, g => g.ToList());