Ich habe eine Abfrage, dieIst es möglich, eine linq-Abfrage mit String-Verkettung anstelle von Bezeichnern durchzuführen?
var queryItems = rawQuery.ObsDataResultList.AsQueryable().Where("Name = @0 AND AuthoredDate = @1" +, selectedItem, dateKey).ToList();
funktioniert gut ich die Abfrage
var queryItems = rawQuery.ObsDataResultList.AsQueryable().Where("Name = @0 AND AuthoredDate = " + dateKey.ToString(), selectedItem).ToList();
Hinweis das einzige, was ich geändert wurde das Entfernen der Kennung aktualisiert werden soll. Jetzt erhalte ich Fehler
Operator '=' inkompatibel mit Operandentypen 'DateTime?' und 'Int32'
Wie kann ich den Fehler beheben, ohne auf die ursprüngliche Abfrage zurückzugehen?
Warum willst du das machen ?! Warum möchten Sie eine sehr gute Frage absichtlich ruinieren? –
@MarkByers - Ich plane, eine Liste solcher where-Anweisungen zu nehmen und sie als Konstanten in einer Struktur zu speichern. Die Struktur könnte ein einzelner Referenzpunkt für unterstützte Abfragen sein. Mit den Parametern in der Liste ist es schwierig, dies zu tun, da die Anzahl der Parameter stark variieren kann. Gibt es einen technischen Vorteil für die erste Form? Z.B. etwas wie die Parametrisierung von Parametern, um eine Injektion zu vermeiden? –
@PBrianMackey: Ja, Sie könnten eine Injektion bekommen. Warum ist es schwierig, eine Liste von Parametern zu speichern? –