検索パラメーターを保持するクラス (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)に渡すにはどうすればよいですか?