DBnull в запросе Linq вызывает проблемы - PullRequest
0 голосов
/ 03 декабря 2009

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

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

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

попытался добавить &&, где item.endtime! = Null .. и даже! = Dbnull.value

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

Я уверен, что это супер простое исправление, но я все еще скучаю по нему .. согласно

спасибо физ

Ответы [ 3 ]

1 голос
/ 03 декабря 2009

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

1 голос
/ 04 декабря 2009

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

0 голосов
/ 03 декабря 2009

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

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

от т в MyTable где Convert.ToString ((Convert.ToString (t.MyDateColumn) ?? "31.12.2020"))

...