可能重复:
LINQ2SQL: Cannot convert IQueryable<> to IOrderedQueryable error
我在控制器的searchString中出现此错误..
这是我的代码:
if (!String.IsNullOrEmpty(searchString))
{
posts = posts.Where(post => post.Body == searchString);
}
我在我的索引中使用此代码进行搜索。 我在这里或其他什么地宣布了错误吗?我已经尝试过谷歌搜索,但没有找到一个明确的答案。提前感谢任何可以帮助我的人..
答案 0 :(得分:20)
最可能的原因是您在var
的查询中对posts
使用了隐式OrderBy
声明。如果用
IQueryable<Post> posts = someSource.Where(cond).OrderBy(/*the culprit*/);
错误应该消失。
答案 1 :(得分:6)
您的posts
变量似乎属于IOrderedQueryable<Post>
类型,但您要为其分配IQueryable<Post>
。我看到了两种解决方法,要么将变量类型修改为IQueryable<Post>
,要么将查询排序为:
posts = posts.Where(post => post.Body == searchString)
.OrderBy(post => post.Date);
答案 2 :(得分:0)
posts
为IOrderedQueryable
,对where的调用返回IQueryable
。为什么不明确声明变量并查看它是否解决了问题。