Frage

Wie ca ich subsonics benutze Find<T> Methode zur Suche nach Zeilen mit einem Feld, das den Wert "Null" enthält. Nehmen wir zur Diskussion an, ich habe eine AC# -Klasse mit dem Namen "Visit", die ein nullbares DateTime -Feld namens "Synchronizedon" enthält, und nehmen wir auch an, dass die Subsonic -Migration die entsprechende "Besuche" und das "Synchronizedon" -Felderfeld erstellt hat .

Wenn ich die SQL -Abfrage selbst schreiben würde, würde ich so etwas schreiben wie:

SELECT * FROM Visits WHERE SynchronizedOn IS NULL

Wenn ich den folgenden Code verwende:

var visits = myRepository.Find<Visit>(x => x.SynchronizedOn == null);

Subsonic verwandelt es in die folgende SQL -Abfrage:

SELECT * FROM Visits WHERE SynchronizedOn == null

was niemals Zeilen zurückgibt.

Ich habe den folgenden Code ausprobiert, aber er macht einen Fehler:

visits = repository.Find<Visit>(x => x.SynchronizedOn.HasValue);

Ich konnte die folgende Syntax verwenden:

var query = from v in repository.All<Visit>()
            where v.SynchronizedOn == null
            orderby v.CreatedOn
            select v;
visits = query.ToList<Visit>();

Aber es ist nicht so schön wie die Verwendung der Find<T> Methode.

Jeder weiß, wie ich den Zustand "Synchronizedon ist null" angeben kann Find<T> Methode?

War es hilfreich?

Lösung

Sie können verwenden:

var visits = myRepository.All<Visit>().Where(x => x.SynchronizedOn == null).ToList();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top