2014-09-10 101 views
0

我是ASP.NET新手。我在会议表中有date_meeting(日期时间)列。我想从表中加载数据,这是date_meeting的日期是今天。 我尝试的任何变化:在ASP.NET mvc 3中比较日期和日期时间?

List<Meeting> meetings = db.Meetings.Where(x => x.date_meeting == Convert.ToDateTime(DateTime.Now.ToString("dd.mm.yyyy")).Date && x.langId == lang).ToList(); 

错误:

LINQ to Entities does not recognize the method 'System.DateTime ToDateTime(System.String)' method, and this method cannot be translated into a store expression.

我需要这种逻辑。

List<Meeting> meetings = db.Meetings.Where(x => x.date_meeting.ToString("dd.mm.yyyy") == DateTime.Now.ToString("dd.mm.yyyy") && x.langId == lang).ToList(); 

回答

3

,或者您可以使用

List<Meeting> meetings = db.Meetings.Where(m.date_meeting.Day.Equals(DateTime.Now.Day) && 
            m.date_meeting.Month.Equals(DateTime.Now.Month) && 
            m.date_meeting.Year.Equals(DateTime.Now.Year) && && x.langId == lang).ToList(); 

或者尝试这篇文章:LINQ query to compare only date part of DateTime

+0

错误:底层提供程序在打开时失败。 – 2014-09-10 12:34:59

+1

http://www.codeproject.com/Articles/499987/LINQ-query-to-compare-only-date-part-of-DateTime试试这个 – 2014-09-10 12:39:12

+0

成功:'列表 meeting = db.Meetings.Where(x = > x.date_meeting.Value.Day == DateTime.Now.Day && x.date_meeting.Value.Month == DateTime.Now.Month && x.date_meeting.Value.Year == DateTime.Now.Year && x。 langId == lang).ToList();'感谢链接@meajaygoel – 2014-09-10 12:55:32

1

尝试

List<Meeting> meetings = db.Meetings.Where(x => x.date_meeting.Date == DateTime.Now.Date && x.langId == lang).ToList(); 
+0

System.Nullable ”不包含定义“Date”并未找到扩展方法“Date”,接收类型为“System.Nullable ”作为第一个证明t(可能错过了使用指令或程序集引用) – 2014-09-10 12:05:37

+1

@MehmanBashirov - 尝试'x.date_meeting.Value.Date' – 2014-09-10 12:06:33

+0

x.date_meeting.Value.Date == DateTime.Now.Date'指定的类型成员'Date'不是在LINQ to Entities中受支持。仅支持初始化程序,实体成员和实体导航属性。 – 2014-09-10 12:15:07