2017-10-19 33 views
0

我有以下代码: Linq:varName.hits.select(x => x.document).toList()


var predicate = PredicateBuilder.True().And(p => p["_latestversion"] == "1"); 
predicate = predicate.And(GetDefaultTemplatePredicatesExpression());

if(!string.IsNullOrEmpty(path)) predicate = predicate.And(GetPathPredicateExpression(path)); var results = context.GetQueryable().Where(predicate).OrderByDescending(p=> p.Views).GetResults(); if (results != null) { if (results.Hits.Any()) { return results.Hits.Select(x => x.Document).ToList(); } }

我正在检索基于最新版本的记录列表。但是这段代码并不指示要返回的记录数量。我可以检查上述代码是否返回从数据库中检索到的任何数量的记录?

+0

您可以随时询问Count()方法返回的行数。否则我不明白你的问题。 – Rob

+0

那么,首先,这不是你的*实际*代码,因为你的外壳是错的。但假设它成功了,它将具有与'varName.hits'一样多的元素。当然,每次迭代'varName.hits'时可能会有所不同。你的问题很不明确 - 请更具体。 –

+0

请参考上面的代码。我已编辑包含更多。 – snowfrost

回答

0

我不清楚那个GetResults()调用会返回什么(是你定义的扩展方法吗?我找不到任何与.NET框架相关的东西),这使得很难做出一个关于其他事情的坚定声明。

我相信你可以分割线:

var results = context.GetQueryable<ArticleItem>() 
       .Where(predicate) 
       .OrderByDescending(p=> p.Views) 
       .GetResults(); 

成三行:

var query = context.GetQueryable<ArticleItem>() 
       .Where(predicate) 
       .OrderByDescending(p=> p.Views); 
var count = query.Count(); 
var results = query.GetResults(); 

我想这会给你会想要。

相关问题