c# - 使用方法参数作为泛型类型参数

标签 c# linq generics expression

我有一个保存搜索参数的类 (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)?

最佳答案

public void AddOrderByClause<D,E>(string field, E sourceDataType)
{
    .....
}

关于c# - 使用方法参数作为泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10634260/

相关文章:

c# - 用户控件中的 "Type or namespace name could not be found"

generics - 在 F# 中强制内部 DSL 的现有类型

asp.net-mvc - 如何在 Onion 架构中使用来自 Kendo UI 的 ToDataSourceResult 而不暴露 IQueryable

c# - 实现具有某些限制的 JOIN 的算法

arrays - 带有协议(protocol)的 Swift 泛型数组

Java 泛型不兼容类型链表迭代器

c# - 拆分字符串错误 : cannot convert from string to char

c# - 在电吉他上进行音高跟踪时如何检测弦?

c# - LINQ to SQL - 数据库生成的 key 已在使用中

c# - Entity Framework 6 过滤子对象