用于检查DBNull的VB Lambda

时间:2012-01-04 16:29:15

标签: vb.net linq linq-to-sql

此代码应返回DateCreated的month组件等于指定的MonthIssued值的所有记录。问题是,如果DateCreated是DBNull,我将得到一个运行时异常,需要额外的If三元运算符。无论如何都会导致性能下降,代码实际执行了吗?

resultSet = resultSet.Where(Function(d) If(d.a.DateCreated.HasValue, If(d.a.DateCreated.Value.Month = MonthIssued, True, False), False))

1 个答案:

答案 0 :(得分:4)

尝试使用短路AndAlso逻辑运算符:

,而不是使用三元组
resultSet = resultSet.Where(Function(d) _
    d.a.DateCreated.HasValue AndAlso _
    d.a.DateCreated.Value.Month = MonthIssued)