2012-01-04 96 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)