查询可空日期实体框架

时间:2014-03-05 17:03:58

标签: asp.net entity-framework-5

我正在尝试针对实体框架运行以下内容,但收到有关GetValueOrDefault()

的错误消息
var today = DateTime.Today;
var list = context.MemberGroupPermissions
                  .Where(m => m.Date.GetValueOrDefault().Date == today.Date);

如何比较一个可以为空的2个日期?

1 个答案:

答案 0 :(得分:0)

对于问题的可空部分,您可以先检查是否存在值,如果是,则进行比较。

但是它会抱怨使用Date属性,您可以使用EntityFunctions.TruncateTime

DateTime date = DateTime.Now.Date;

var holding =
    context.AVRHoldings
            .Where(x => x.ExpirationDate.HasValue && x.ExpirationDate.Value == date)
            .FirstOrDefault();

Assert.IsNotNull(holding);

holding =
    context.AVRHoldings
            .Where(x => 
                 x.ExpirationDate.HasValue && 
                 EntityFunctions.TruncateTime(x.ExpirationDate.Value) == date.Date)
            .FirstOrDefault();

Assert.IsNotNull(holding);