【发布时间】:2012-09-06 16:51:39
【问题描述】:
我想使用一种单一的通用方法来检索表示 lambda 表达式中属性的给定字符串的有序列表。
我知道以前有人要求过这个,但它对我不起作用。我试过了,它抛出了错误:
db.Books.OrderByDescending(x => x.GetType().GetProperty("Discount").GetValue(x,null))
.Take(3);
我现在正在使用这个:
public IQueryable<Book> GetCheapestBooks()
{
return db.Books.OrderBy(x => x.Discount)
.Take(3);
}
【问题讨论】:
-
第一个示例抛出的错误是什么?在您的第二个示例中,
results等于什么? -
我收到此错误:无法按类型“System.Object”订购
-
我尝试了这些建议,除了 .tolist() 想法(由 L.B 提出)之外,没有其他建议有效,但它有它的缺陷,所以我不确定我是否应该使用它而不是创建一些更具体的方法。
-
p.s:顺便说一下,我的意思是简短的建议
-
好吧,我猜这是语法问题,这是一个有效的方法:results = (from book in db.Books orderby ("Discount") select book).Take(3);
标签: c# .net sql linq sql-order-by