[英]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.