2009-12-03 1 views
0

я делаю запрос таким образом:DBNull в Linq запросов вызывает проблемы

int numberInInterval = (from dsStatistics.J2RespondentRow item in jStats.J2Respondent 
        where item.EndTime > dtIntervalLower && item.EndTime <= dtIntervalUpper 
        select item).count(); 

там, кажется, некоторые dbnulls в колонке EndTime .. каким-либо образом я могу избежать этого?

попытался добавить & & где item.endtime! = Пустой .. и даже! = DBNull.Value

сделать я должен сделать второй (первый) запрос, чтобы захватить все, что Арент нуль затем запустить один из приведенных выше ?

я уверен, его супер просто исправить, но им все еще не хватает его .. согласно

благодаря физ

+0

Что является источником этих данных? –

ответ

0

Как я обычно делают это в запросе T-SQL является использование ISNULL на дату , и установите дату на что-то вроде '12/31/2099 ', когда она равна нулю.

С Linq это может быть что-то вроде этого:

из т в MyTable где Convert.ToString ((Convert.ToString (t.MyDateColumn) ?? "12/31/2099")) < MyTargetValue

1

Я думаю, что вы хотите использовать item.EndTime.HasValue, а не item.EndTime == null.

1

Простейший способ сделать это - использовать .GetValueOrDefault (... Некоторый разумный по умолчанию ...) значение, которое может быть нулевым, и это позволит избежать ошибки.