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();