2016年1月21日 星期四

【Entity Framework】The specified type member 'Date' is not supported in LINQ to Entities.

在 Linq 中要做僅日期(不含時間)的比較,但取用 DateTime 中的 Date prop 時,出現
LINQ to Entities 中不支援所指定的型別成員 'Date'。

例如要取符合 parDate 落於期間的第一筆資料
_contxt.MyTable.FirstOrDefault(m =>
    (m.StartDate.Date <= parDate.Date && 
    m.EndDate.Date >= parDate.Date) &&
 );

這樣會報錯,解決是 m 下的 prop 用 TruncateTime 去取日期,所以會像
_contxt.MyTable.FirstOrDefault(m =>
    (EntityFunctions.TruncateTime(m.StartDate) <= parDate.Date && 
    EntityFunctions.TruncateTime(m.EndDate) >= parDate.Date) &&
 );

ref: stackOverFlow

沒有留言:

張貼留言