我怎樣才能讓一個擴展方法,將工作像這樣IQueryable的<T>擴展方法不工作
public static class Extensions<T>
{
public static IQueryable<T> Sort(this IQueryable<T> query, string sortField, SortDirection direction)
{
// System.Type dataSourceType = query.GetType();
//System.Type dataItemType = typeof(object);
//if (dataSourceType.HasElementType)
//{
// dataItemType = dataSourceType.GetElementType();
//}
//else if (dataSourceType.IsGenericType)
//{
// dataItemType = dataSourceType.GetGenericArguments()[0];
//}
//var fieldType = dataItemType.GetProperty(sortField);
if (direction == SortDirection.Ascending)
return query.OrderBy(s => s.GetType().GetProperty(sortField));
return query.OrderByDescending(s => s.GetType().GetProperty(sortField));
}
}
目前,上面寫着「擴展方法必須在非泛型靜態類中定義」。
我該怎麼做?
感謝您的答案和額外的鏈接......我一直試圖做動態LINQ整個上午,不知道我真的在做什麼。 不能說我現在真的做,要麼...需要做一些閱讀所有這一切。 再次感謝! – Micah 2010-04-01 20:01:42
我想我們都已經在那裏了:o)...祝你好運! – 2010-04-01 20:03:57
順便說一句,這段代碼在這裏http://stackoverflow.com/questions/41244/dynamic-linq-orderby確實也有幫助 – Micah 2010-04-01 20:07:41