試圖讓IQueryable上的OrderBy工作,沒有太多的運氣。通用LINQ幫助OrderBy Lambda表達式
這裏是我的方法:
public ICollection<T> FindAll<T>(Expression<Func<T,bool>> predicate, Expression<Func<T,int>> orderingKey) where T : Post
{
return repository
.Find()
.Where(predicate)
.OfType<T>()
.OrderBy(orderingKey)
.ToPagedList();
}
排序工作,如果我這樣做:
FindAll(p => p.PostName == "Foo", p => p.PostId);
但如果我想這樣做:
FindAll(p => p.PostName == "Foo", p => p.DateModified);
它不當然工作,因爲我已經宣佈了表達式爲T,int
,而上述表達式的類型爲T,DateTime
我該如何聲明所以我可以OrderBy 任何我的實體(郵政)的財產?
這是LINQ實體(實體框架4.0)。
看看[這個答案] [1] 乾杯 [1]:http://stackoverflow.com/a/12920596/ 1139347 – joaopintocruz 2012-10-16 18:02:37