优化的LINQ to SQL查询

时间:2014-03-27 11:01:36

标签: c# linq optimization query-optimization

我正在进行车辆跟踪项目,我正在制作停工报告,如下所示: View

很少有感兴趣的数据库字段如下:

enter image description here

现在我对报告的当前逻辑很差。我获取所选日期范围的所有记录,然后显示Ignition关闭且速度等于零的记录。

我认为可以优化这一点。是否有可能有一个LINQ查询,我只能获取我需要的记录。例如,在当前快照中我只想要47890和47878 id记录。

这可能吗?

修改

以下是代码:

        var vehicle = db.Vehicles.Find(vehicleId);
        DateTime startDate = fromDate;
        DateTime endDate = toDate.AddDays(1);
        var sData = db.Vehicles
            .Where(v => v.VehicleId == vehicleId)
            .SelectMany(v => v.GsmDeviceLogs)
            .Where(gs => gs.DateTimeOfLog > startDate && gs.DateTimeOfLog < endDate && gs.Speed < zeroSpeed && !gs.IgnitionOn)
            .Select(v => new
            {
                DateTimeOfLog = v.DateTimeOfLog,
                Location = v.Location
            }).OrderBy(gs => gs.DateTimeOfLog).ToList();

0 个答案:

没有答案