我试图将SQL语句转换为LINQ-to-Entities并且添加分钟导致错误。最初我试图让查询起作用 使用LinqPad但我收到错误
命名空间
中不存在DbFunctions
使用下面的语句时。当我将它添加到我的MVC控制器时,我得到了基本相同的错误。我已经搜索过,无法找到我需要的Entity.DbFunctions
工作内容。
这是我选择的匿名对象。我需要添加一些分钟,这是通过使用部门偏移并将转换为分钟的时间(24小时内1440分钟)计算得出的。
ETD = System.Data.Entity.DbFunctions.AddMinutes(f.ESTIMATED_OUT, f.OFFSET_DEP_TIME_MINS + (f.OFFSET_DEP_TIME_MINS/1440))
第一个问题是我需要添加到LinqPad和我的MVC项目以使Entity.DbFunctions
工作。
第二个问题是,如果这是获得我计算时间的正确方法,还是有更好的方法?
var pastUtcTime = DateTime.UtcNow.AddMinutes(-20);
var futureUtcTime = DateTime.UtcNow.AddHours(2);
var result = (from f in API_FLIGHT
where f.DEP_STATION == "ABC"
&& f.DEP_GATE == "44F"
&& f.ACTUAL_OUT == null
&& f.ESTIMATED_OUT > pastUtcTime
&& f.ESTIMATED_OUT < futureUtcTime
orderby f.ESTIMATED_OUT
select new
{
ETD=System.Data.Entity.DbFunctions.AddMinutes(f.ESTIMATED_OUT, f.OFFSET_DEP_TIME_MINS + (f.OFFSET_DEP_TIME_MINS/1440))
}).ToList();