10

可能重复:
LINQ2SQL:无法将 IQueryable<> 转换为 IOrderedQueryable 错误

我在控制器的 searchString 中有这个错误..

这是我的代码:

if (!String.IsNullOrEmpty(searchString))
{ 
    posts = posts.Where(post => post.Body == searchString);
}

我正在使用此代码在我的索引中进行搜索。我在这里声明有什么问题吗?我已经尝试过谷歌搜索,但没有找到明确的答案。提前感谢任何可以帮助我的人..

4

3 回答 3

25

最可能的原因是您varposts具有OrderBy. 如果您将其替换为

IQueryable<Post> posts = someSource.Where(cond).OrderBy(/*the culprit*/);

错误应该消失。

于 2013-01-09T04:34:21.177 回答
6

您的posts变量似乎是类型IOrderedQueryable<Post>,但您正在为其分配 IQueryable<Post>. 我看到 2 种方法来解决这个问题,要么修改你的变量类型,要么IQueryable<Post>像这样对你的查询进行排序:

posts = posts.Where(post => post.Body == searchString)
    .OrderBy(post => post.Date);
于 2013-01-09T04:36:15.097 回答
0

postsisIOrderedQueryable并且对 where 的调用返回一个IQueryable. 为什么不显式声明变量并查看它是否解决了问题。

于 2013-01-09T04:34:49.387 回答