0
爲什麼底層linq實體可以工作,但註釋掉的頂層查詢不起作用?此函數只能從Linq調用實體框架中的實體
var yogaProfile = dbContext.YogaProfiles.Where(i => i.ApplicationUserId == userId).First();
var yogaSpace = yogaProfile.YogaSpaces.Where(j => j.YogaSpaceId == yogaSpaceId).First();
if (yogaSpace == null)
throw new Exception("You Don't Have A Yoga Space With This ID!");
var todayPlus30 = DateTime.Now.AddDays(30);
var yesterday = DateTime.Now.Date.AddDays(-1);
// Does not work!!
//var yogaEvents = yogaSpace.YogaSpaceEvents.Where(k =>
// DbFunctions.TruncateTime(k.EventDateTime) > DbFunctions.TruncateTime(yesterday) &&
// DbFunctions.TruncateTime(k.EventDateTime) < DbFunctions.TruncateTime(todayPlus30)).ToList();
var yogaEvents = yogaSpace.YogaSpaceEvents.Where(k =>
k.EventDateTime.Date > yesterday &&
k.EventDateTime.Date < todayPlus30);
不向我們展示什麼DbFunctions.TruncateTime(...)確實很難回答,因爲它顯然是唯一的區別。 TruncateTime中的某些內容正在使用數據庫端方法不支持的方法。 –
'DbFunctions.etc(..'不是Linq函數,所以它不起作用 – Irfan