尝试AddMinutes时出错?

时间:2015-10-19 15:42:05

标签: c# entity-framework linq-to-entities

我试图将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();

0 个答案:

没有答案