2016-11-09 65 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

相关问题