执行Linq查询时的时间距离的条件计算

时间:2013-02-19 15:47:59

标签: c# linq

我想对具有StartTime属性的对象列表执行以下查询。问题是有时可以建立null值。

那么,如何检查值是null以及它是否在2个值之间执行随机数?

  var myOtherQuery = db.Table.Select(e=> e );

var myQuery = myOtherQuery.Select(e => new { e, TimeDistance = ((DateTime) e.StartTime - DateTimeNow).TotalMinutes });

这是L2SQL * 某些对象在StartTime中具有空值,这会在尝试确定TimeDistance时导致异常*

1 个答案:

答案 0 :(得分:1)

你的意思是这样的吗?

var myQuery = myOtherQuery.Select(e => 
    new { E = e, 
          TimeDistance = ((e.StarTime.HasValue ? e.StartTime.Value : someOtherValue) - DateTime.Now).TotalMinutes 
    }
);

或者:

var myQuery = myOtherQuery.Select(e => 
    new { E = e, 
          TimeDistance = (e.StarTime.HasValue ? (e.StartTime.Value - DateTime.Now) : someOtherValue).TotalMinutes 
    }
);