实体框架和Linq - 比较DateTime

jim*_*jim 2 linq asp.net entity-framework

我有这个代码

public List<CalendarData> GetCalendarData(DateTime day)
    {
        List<CalendarData> list = new List<CalendarData>();
        using (dataContext = new VTCEntities())
        {

            DateTime test = new DateTime(2010, 10, 20, 17, 45, 0);

            var data = from z in dataContext.ReservationsSet
                       where z.start_time.Value == test
                       select z;

            foreach (var r in data)
Run Code Online (Sandbox Code Playgroud)

我想做的就是拥有这个

var data = from z in dataContext.ReservationsSet
                   where z.start_time.Value == day
                   select z;
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是z.start_time也有时间部分.DateTime日没有记录时间部分.有没有办法比较日期部分而不会出现此错误

The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported. 
Run Code Online (Sandbox Code Playgroud)

当我这样做

var data = from z in dataContext.ReservationsSet
           where z.start_time.Value.Date == test
           select z;
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

一种选择是计算两个值,如下所示:

DateTime day = ...;
DateTime nextDay = day.AddDays(1);

var data = from z in dataContext.ReservationsSet
                   where z.start_time.Value >= day &&
                         z.start_time.Value < nextDay
                   select z;
Run Code Online (Sandbox Code Playgroud)