1

我编写的这部分代码用于在 Cases 的截止日期前进行高级搜索。

var temp = (from j in db.Get_AllCases(user_id, true, -1) select j).ToList();
temp =  (from c in temp 
           where (
           (String.IsNullOrEmpty(deadline) || c.Deadline <= System.Convert.ToDateTime(deadline))                     
           ) 
           select c).ToList();  

有些案例延长了截止日期,这是我的问题,因为在这种情况下,案例的结束不是截止日期而不是extend_deadline。在这种情况下,从上面的代码行

(String.IsNullOrEmpty(deadline) || c.Deadline <= System.Convert.ToDateTime(deadline)) 

必须看起来像这样

(String.IsNullOrEmpty(extend_deadline) || c.Deadline <= System.Convert.ToDateTime(deadline)) 

如何修改可能包含此异常的临时变量的语句。Deadline 和extend_deadline 是数据库表中的两列,对于搜索,将所选日期与较早的截止日期和extend_deadline 进行比较对我来说非常重要。

4

1 回答 1

2

这个怎么样:

temp = (from c in temp
        let maxDate = (string.IsNullOrEmpty(c.ExtendedDealine)) ? c.Deadline : c.ExtendedDealine
        where (string.IsNullOrEmpty(maxDate) || Convert.ToDateTime(maxDate) <= System.Convert.ToDateTime(deadline))
        select c).ToList();  

附带说明一下,您应该DateTime一直使用而不是转换字符串。

于 2013-08-22T12:31:46.390 回答