Linq:varName.hits.select(x => x.document).toList()

时间:2017-10-19 09:00:54

标签: linq

我有以下代码:  


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(); } }

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

1 个答案:

答案 0 :(得分: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();

我认为这会给你你想要的。