Pregunta

Cómo CA utilizo el método de Find<T> subsónico para buscar filas con un campo que contiene el valor "nulo". Por el bien de la discusión, vamos a suponer que tengo clase de C # llamado "Visita", que contiene un campo DateTime anulable llamado "SynchronizedOn", y también vamos a suponer que la migración subsónico ha creado la correspondiente tabla de "Visitas" y el campo "SynchronizedOn" .

Si tuviera que escribir la consulta SQL a mí mismo, me gustaría escribir algo como:

SELECT * FROM Visits WHERE SynchronizedOn IS NULL

Cuando uso el siguiente código:

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

subsónico convierte en la siguiente consulta SQL:

SELECT * FROM Visits WHERE SynchronizedOn == null

que nunca se vuelve ninguna fila.

He probado el siguiente código pero genera un error:

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

yo era capaz de utilizar la siguiente sintaxis:

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

pero no es tan bonito como un corto utilizando el método Find<T>.

Alguien sabe cómo puedo especificar la condición "SynchronizedOn IS NULL" en el método Find<T>?

¿Fue útil?

Solución

Puede utilizar:

var visits = myRepository.All<Visit>().Where(x => x.SynchronizedOn == null).ToList();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top