2016-11-09 64 views
-1

這是物業我:asp.net日期時間不會導致同樣的

[DataType(DataType.Time)] 
    public TimeSpan StartingTime { get; set; } 

現在控制器我會檢查是否啓動時間小於現在

var now = DateTime.Now.TimeOfDay; 
    return View(db.SchoolTime.ToList().Where(a => a.StartingTime < now); 

這裏連開始時間少於現在在數據庫中,但不返回列表到vew

我認爲這是因爲開始時間 is lik(09:00:00),但現在就像是09:10:00:12312312

請幫助在此先感謝

回答

0

這是因爲 '<' 條件不。 嘗試的代碼更改爲:

return View(db.SchoolTime.Where(a => a.StartingTime < now).ToList()); 

在哪裏,除非你枚舉收集條件沒有得到應用。 ToList()將幫助你做到這一點。
否則一旦在View中枚舉集合,它就會執行。

+0

指定類型的成員「日期」不支持LINQ到實體。僅支持初始化程序,實體成員和實體導航屬性。 –

0

使用下面的代碼

DateTime parsedDate; 
string pattern = ; 
DateTime.TryParseExact(StartingTime, "MM-dd-yy", null, DateTimeStyles.None, out parsedDate); 
parsedDate.TimeOfDay;// out put in your format MM:HH:SS 

中序,使上面的代碼工作,你需要使用System.Globalization;命名空間的補充。

更新1: 按照您的代碼

var now = DateTime.Now.TimeOfDay; 

回報每一個,因爲它應該在您創建DateTime對象本身被分配時間○時00分00秒

所以用這個

var now = DateTime.Now.ToString("hh:mm:ss") 
return View(db.SchoolTime.ToList().Where(a => a.StartingTime < now); 
+0

LINQ to Entities不支持指定的類型成員'Date'。僅支持初始化程序,實體成員和實體導航屬性。 –

+0

你是否得到這個錯誤? – Aravind

相關問題