Subsonic 3, SimpleRepository, SQL Server: как найти строки с нулевым полем?

Как я могу использовать Subsonic's Find<T> метод для поиска строк с полем, содержащим нулевое значение. Для обсуждения давайте предположим, что у меня есть класс aC# с именем "Visit", который содержит обнуляемое поле DateTime с именем "SynchronizedOn", а также давайте предположим, что при дозвуковой миграции созданы соответствующая таблица "Visits" и поле "SynchronizedOn",

Если бы я сам написал SQL-запрос, я бы написал что-то вроде:

SELECT * FROM Visits WHERE SynchronizedOn IS NULL

Когда я использую следующий код:

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

Subsonic превращает его в следующий запрос SQL:

SELECT * FROM Visits WHERE SynchronizedOn == null

который никогда не возвращает никаких строк.

Я попробовал следующий код, но он выдает ошибку:

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

Я был в состоянии использовать следующий синтаксис:

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

но это не так приятно, как использование Find<T> метод.

Кто-нибудь знает, как я могу указать условие "SynchronizedOn IS NULL" в Find<T> метод?

1 ответ

Решение

Ты можешь использовать:

var visits = myRepository.All<Visit>().Where(x => x.SynchronizedOn == null).ToList();
Другие вопросы по тегам