如何在SELECT TOP 1上维护LINQ延迟执行
本文关键字:维护 LINQ 延迟 执行 SELECT TOP | 更新日期: 2023-09-27 17:58:43
当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)。如果源为空,则可能返回null。查看这些链接以了解更多信息。。。
MSDN来源:http://msdn.microsoft.com/de-de/library/bb503062(v=vs.110).aspx
在您的情况下
var query2 = (from q in query1
select t)
.Take(1);