2014-03-05 35 views
0

我試圖運行下面對實體框架的查詢,但我得到約GetValueOrDefault()可空日期實體框架

var today = DateTime.Today; 
var list = context.MemberGroupPermissions 
        .Where(m => m.Date.GetValueOrDefault().Date == today.Date); 

如何比較兩個日期,其中一個是可空的錯誤?

+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);