繁体   English   中英

如何在SELECT TOP 1上维护LINQ延迟执行

[英]How to maintain LINQ deferred execution on SELECT TOP 1

当SQL查询包含select top 1时,如何创建LINQ语句来维持延迟执行? 我希望它可链接到IQueryable <>类型的其他LINQ查询。

var query1 = from t in table
             where t.test == 1
             select t;

//this should set query2 of type IQueryable<TableEntity> 
var query2 = from q in query1
             [[SELECT TOP 1 SOMEHOW]]
             select q;

var query3 = from q in query2
             where q.test2 == 2

var executedResult = query3.ToList();

如果解决方案使用lambda或linq或两者同时使用,则不必大惊小怪。

您可以尝试以下方法:

var query2 = (from q in query1
             select t)
             .Take(1);

Take(count)返回包含count元素的IEnumerable(如果找不到足够的元素,则返回IEnumerable)。

使用Take(1)返回IEnumerable。 如果源为空,则可能返回null。 查看这些链接以获取更多信息...

MSDN来源: http : //msdn.microsoft.com/de-de/library/bb503062( v= vs.110).aspx

就你而言

var query2 = (from q in query1
         select t)
         .Take(1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM