我有一个包含搜索参数的类(SearchParameters),然后我使用一个名为 Querybuilder 的通用类基于这些创建一个 linq 查询。这将返回结果并且一切正常。
结果显示在 GridView 中,我目前正在为 gridivew 实现自定义排序,我将要搜索的字段添加到 SearchParameters 对象(使用流畅的界面)
SearchParameters=SearchParameters.SortResultsBy(e.SortExpression,e.NewSortOrder.ToString());
我需要将列的数据类型用作我的 AddOrderByClause() 方法的通用参数:
public void AddOrderByClause<D>(string field, Type sourceDateType)
{
var orderExpression = Expression.Lambda<Func<T, D>>(Expression.Property(resultExpression, field), resultExpression);
rootExpression = Expression.Call(
typeof(Queryable),
"OrderBy",
new Type[] { typeof(T), typeof(D) },
rootExpression,
orderExpression);
}
我可以很容易地找到列的数据类型,但是如何将它传递给AddOrderByClause()
(通用参数 D)?