我有一个从DB返回行列表的查询:
var records = (from t in this.Context.MyTable where SomeConditionsAreTrue select t).ToList();
此表格中的一列OriginalAppDate
是nullable DateTime
列。
我想找到在OriginalAppDate中填充的最早日期,其中它不是空的
我写的是这个,我的数据库还没有准备好和一些代码问题所以我无法运行它来测试所以如果这听起来是正确的话想看看并获得反馈?
var tempDateTime = records.Where(t => t.OriginalAppDate.HasValue).Min(t => t.OriginalAppDate.Value);
当我在下面说这个时,编译器说这个表达式总是假的? 那么我怎么知道它是否返回了值?
if(tempDateTime == null)
{
//...
}
答案 0 :(得分:1)
如果要选择整行,则可以按日期排序并选择第一行。您可以保证选择不可行的行,因为您正在过滤那些行:
var minRecord = records.Where(t => t.OriginalAppDate.HasValue).
OrderBy(t => t.OriginalAppDate).FirstOrDefault();