【发布时间】:2015-09-10 17:16:23
【问题描述】:
有人可以解释为什么该语句编译为OrderBy 而不是OrderByDescending?在我看来它应该可以工作:https://msdn.microsoft.com/en-us/library/vstudio/bb534316(v=vs.100).aspx
“System.Linq.IQueryable”不包含定义 'OrderByDescending' 并且没有扩展方法 'OrderByDescending' 接受“System.Linq.IQueryable”类型的第一个参数可能是 找到(您是否缺少 using 指令或程序集引用?)
目标框架是.Net 4.5.1。entity 的类型是System.Data.Entity.DbSet
var comparisonQuery = new ComparisonQuery();
comparisonQuery.Query = entity.Where(whereStatement)
.OrderByDescending(GenOrderByFragment()). // no go
Select(GenBigRowResultObject(elements, idFieldName)).AsNoTracking();
【问题讨论】:
-
看起来您使用的是
IQueryable而不是IQueryable<T> -
@LucasTrzesniewski 框架中也没有
OrderBy扩展方法IQueryable。 -
GenOrderByFragment()返回什么类型? -
是
entity非泛型DbSet还是DbSet<T>? -
我相信您链接到的文档适用于 IQueryable 的通用版本。非泛型版本上几乎没有扩展。
标签: c# linq iqueryable