首页 > 解决方案 > Linq 查询语法到方法查询语法

问题描述

任何人都可以帮助如何将此 LINQ 查询语法转换为方法语法。这是因为我需要使用 Take() 方法。

IQueryable<QueueItem> rs = from a in ldb.QueueItems
                           join b in ldb.Robots on a.RobotId equals b.Id
                           join c in ldb.RobotsXEnvironments on b.Id equals c.RobotId
                           join d in ldb.Environments on c.EnvironmentId equals d.Id
                           join e in ldb.Releases on d.Id equals e.EnvironmentId
                           where e.ProcessKey == dropdown || a.Reference == query || 
                                       a.SpecificData.Contains(query) &&
                                       a.StartProcessing >= fromDate && a.EndProcessing <= toDate
                           select a;

标签: c#linqentity-framework-6

解决方案


你可以这样做:

IQueryable<QueueItem> rs = (from a in ldb.QueueItems
                           join b in ldb.Robots on a.RobotId equals b.Id
                           join c in ldb.RobotsXEnvironments on b.Id equals c.RobotId
                           join d in ldb.Environments on c.EnvironmentId equals d.Id
                           join e in ldb.Releases on d.Id equals e.EnvironmentId
                           where e.ProcessKey == dropdown || a.Reference == query || 
                                       a.SpecificData.Contains(query) &&
                                       a.StartProcessing >= fromDate && a.EndProcessing <= toDate
                           select a).take(number);

推荐阅读