Linq查询中的DBnull导致问题

时间:2009-12-03 18:01:23

标签: linq dbnull

我正在进行查询:

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

在endtime列中似乎有一些dbnulls .. 我能避免这些吗?

尝试添加&amp;&amp;其中item.endtime!= null ..甚至!= dbnull.value

我是否必须执行第二个(第一个)查询以获取所有不为null然后运行上述查询?

我确定它的超级简单修复,但我仍然错过了它...按照

感谢 NAT

3 个答案:

答案 0 :(得分:1)

我认为你想使用item.EndTime.HasValue,而不是item.EndTime == null。

答案 1 :(得分:1)

最简单的方法是使用.GetValueOrDefault(......一些合理的默认值...)对可以为null的值进行处理,这样可以避免错误。

答案 2 :(得分:0)

我通常在T-SQL查询中执行此操作的方法是在日期使用ISNULL,并在日期为null时将日期设置为'12 / 31/2099'。

Linq可能是这样的:

来自MyTable中的t 哪里   Convert.ToString((Convert.ToString(t.MyDateColumn)??“12/31/2099”))&lt; MyTargetValue