首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ查询帮助(LINQ to SQL)

LINQ查询帮助(LINQ to SQL)
EN

Stack Overflow用户
提问于 2009-06-04 12:18:46
回答 1查看 174关注 0票数 1

我对LINQ不是很熟悉,但我目前正在做一个ASP.NET项目,并使用LINQ to SQL作为对象关系映射(我正在构建一个路线规划应用程序)。我在创建我需要的查询时遇到了问题,所以也许任何人都可以给我一个如何实现这一点的提示。我当前的查询如下所示:

代码语言:javascript
复制
var results = from lift in db.Lift
              where lift.StartTime > DateTime.Now
                    && lift.Route.Stop.Any(o => o.Location.Name.ToLower().Contains(origin))
                    && lift.Route.Stop.Any(d => d.Location.Name.ToLower().Contains(destination))
              select lift;

这个查询可以工作,并且可以工作。我需要的扩展如下:每个停靠点都有一个名为Order的字段,它决定了特定路线中的停靠顺序。我的查询应该选择all Lifts,哪些路由具有与顺序和目的地匹配的停靠点(这就是到目前为止查询所做的),以及起点停靠点的序号低于目的地停靠点的停靠点。我能用LINQ做到这一点吗?还是必须在之后过滤结果?

提前谢谢你,马蒂亚斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-04 12:25:34

从我的脑海中..尝试这样的方法(可能可以简化):

代码语言:javascript
复制
var results = from lift in db.Lift
              let originStop = lift.Route.Stop.
                  FirstOrDefault(o => o.Location.Name.ToLower().Contains(origin))
              let destinationStop = lift.Route.Stop.
                  FirstOrDefault(d => d.Location.Name.ToLower().Contains(destination))
              where lift.StartTime > DateTime.Now
                    && originStop != null
                    && destinationStop != null
                    && originStop.OrderNumber < destinationStop.OrderNumber
              select lift;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/950171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档