2012-01-04 47 views
0

此代码应该返回DateCreated的月份组件等于指定MonthIssued值的所有记录。问题是,如果DateCreated是DBNull,我将得到一个运行时异常,它需要额外的If三元运算符。任何解决这个问题的方法/这会导致代码实际执行时的性能下降?检查DBNull的VB Lambda

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

回答

4

而不是使用ternaries的,请尝试使用短路AndAlso逻辑运算符:

resultSet = resultSet.Where(Function(d) _ 
    d.a.DateCreated.HasValue AndAlso _ 
    d.a.DateCreated.Value.Month = MonthIssued)