【发布时间】:2016-07-17 21:04:18
【问题描述】:
代码如下:
private IQueryable<TSearchResultItem> Search(bool flag)
{
var index = ContentSearchManager.GetIndex(Index);
var ctx = index.CreateSearchContext(SearchSecurityOptions.EnableSecurityCheck);
var items = ctx.GetQueryable<TSearchResultItem>();
var search = HttpContext.Current.Request[SearchTxtParameter];
if (!string.IsNullOrEmpty(search))
{
var predicate = PredicateBuilder.True<LookbookSearchResultItem>();
predicate = predicate.And(x => x.Contributors != null);
return items.Filter(predicate);
}
return items;
}
问题出在这一行:
return items.Filter(predicate);
错误:
Error CS0411 The type arguments for method 'QueryableExtensions.Filter<TSource>(IQueryable<TSource>, Expression<Func<TSource, bool>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
如何克服?
【问题讨论】:
-
有什么问题?
-
对不起。我已经用错误消息更新了帖子。
-
TSearchResultItem 和 LookbookSearchResultItem 是什么关系?
-
公开课 LookbookSearchResultItem : SearchResultItem
-
TSearchResultItem是泛型类型参数吗?这不会进行类型检查,因为LookbookSearchResultItem不是TSearchResultItem。如果您手动将 type 参数应用于对Filter的调用,您应该会收到另一个错误来解释问题。
标签: c#