2017-01-28 38 views
0

在我的sql數據庫是日期,當我使用實體linq where子句,我面臨的問題,如「指定的類型成員'日期'不支持在LINQ to實體只有初始化,實體成員和實體導航屬性被支持。「這是我的where子句「日期」在LINQ to Entities中不受支持。只有初始值設定項

TeamWorks.work_plan_dt == DateTime.Now.Date 
var t = uow.TeamWork.GetAll().Where(t => t.work_plan_dt.Date == DateTime.Today.Date); 
public DateTime? work_plan_dt { get; set; } 

我已經使用dbfunctions.truncatetimeEntityFunctions.truncatetime還是我面對這個問題,我不應該改變從日期爲datetime分貝側的數據類型,請幫我

先感謝

+0

您的問與答uestion不清楚,但看起來問題實際上與您的想法(日期類型)無關,請張貼給您這個錯誤的實際代碼。 –

+0

爲什麼不只是'DateTime.Today'? – Rob

+0

TeamWorks.work_plan_dt.Date == DateTime.Today.Date, –

回答

0

你不能在你的linq代碼中調用你的c#方法,因爲它們沒有翻譯。如果您有日期時間值,只需計算您需要的值,然後將其傳遞給linq查詢。

像這樣

var someDate = DateTime.Now.AddDay(1); 
var list = Db.MyTable.Where(x=>x.Date>someDate).ToList(); 
0

你可以改變這一點:

var t = uow.TeamWork.GetAll().Where(t => t.work_plan_dt.Date == DateTime.Today.Date); 

要這樣:

var t = ((from x in uow.TeamWork.GetAll() select x).ToList().Where(
          T => T.work_plan_dt.Date == DateTime.Today.Date).ToList() 

或者這樣:

var t = uow.TeamWork.GetAll().ToList().Where(t => t.work_plan_dt.Date == DateTime.Today.Date); 
相關問題