Subsonic 3, SimpleRepository, SQL Server: come trovare le righe con un campo nullo?
-
12-09-2019 - |
Domanda
Come utilizzare il metodo Ca Find<T>
di Subsonic per cercare le righe con un campo che contiene il valore "null". Per il bene della discussione, supponiamo che ho ac # classe denominata "visita" che contiene un campo DateTime nullable denominato "SynchronizedOn" e anche supponiamo che la migrazione Subsonic ha creato la tabella corrispondente "Visite" e il campo "SynchronizedOn" .
Se dovessi scrivere la query SQL me stesso, vorrei scrivere qualcosa come:
SELECT * FROM Visits WHERE SynchronizedOn IS NULL
Quando uso il seguente codice:
var visits = myRepository.Find<Visit>(x => x.SynchronizedOn == null);
Subsonic lo trasforma la seguente query SQL:
SELECT * FROM Visits WHERE SynchronizedOn == null
che non restituisce mai alcuna riga.
Ho provato il seguente codice, ma genera un errore:
visits = repository.Find<Visit>(x => x.SynchronizedOn.HasValue);
Sono stato in grado di utilizzare la seguente sintassi:
var query = from v in repository.All<Visit>()
where v.SynchronizedOn == null
orderby v.CreatedOn
select v;
visits = query.ToList<Visit>();
, ma non è così bello come un breve secondo il metodo Find<T>
.
Qualcuno sa come posso specificare la condizione "SynchronizedOn IS NULL" nel metodo Find<T>
?
Soluzione
È possibile utilizzare:
var visits = myRepository.All<Visit>().Where(x => x.SynchronizedOn == null).ToList();