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 落於期間的第一筆資料
  1. _contxt.MyTable.FirstOrDefault(m =>
  2. (m.StartDate.Date <= parDate.Date &&
  3. m.EndDate.Date >= parDate.Date) &&
  4. );

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

ref: stackOverFlow

沒有留言:

張貼留言