首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'System.Linq.IQueryable‘不包含'OrderByDescending’的定义

'System.Linq.IQueryable‘不包含'OrderByDescending’的定义
EN

Stack Overflow用户
提问于 2015-09-10 17:16:23
回答 2查看 1.5K关注 0票数 0

有人能解释为什么这个语句是用OrderBy编译的,而不是用OrderByDescending编译的吗?在我看来,它应该有效:https://msdn.microsoft.com/en-us/library/vstudio/bb534316(v=vs.100).aspx

'System.Linq.IQueryable‘不包含'OrderByDescending’的定义,也找不到接受'System.Linq.IQueryable‘类型的第一个参数的扩展方法'OrderByDescending’(您缺少使用指令还是程序集引用?)

目标框架是.Net 4.5.1

entity的类型是System.Data.Entity.DbSet

代码语言:javascript
运行
复制
var comparisonQuery = new ComparisonQuery();
comparisonQuery.Query = entity.Where(whereStatement)

.OrderByDescending(GenOrderByFragment()). // no go

Select(GenBigRowResultObject(elements, idFieldName)).AsNoTracking();
EN

回答 2

Stack Overflow用户

发布于 2015-09-10 18:03:01

@ direction你最初的评论让我走向了正确的方向。结果发现,OrderBy是通过自定义扩展实现的,而不是像我刚才假设的那样,是框架的扩展。

谢谢你的帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-09-10 18:01:04

正如您在上面的注释中阐述的那样,GenOrderByFragment返回一个字符串。然而,OrderByDescending期望有一个Func<Entity, string>

例如:

代码语言:javascript
运行
复制
// this works
Func<Person, string> keySelectorGood = p => "Name";
var goodQuery = entityContext.People.Where(p => p.Name == "John").OrderByDescending(keySelectorGood);

// this DOES NOT WORK
Func<string> keySelectorBad = () => "Name";
var badQuery = entityContext.People.Where(p => p.Name == "John").OrderByDescending(keySelectorBad);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32507993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档