如何将表达式作为参数传递给方法

时间:2017-08-04 10:22:35

标签: c# expression

我有通用存储库的这段代码:

public PaginatedList<TEntity> Paginate<TKey>(int pageIndex, int pageSize, Expression<Func<TEntity, TKey>> keySelector) {

            return Paginate<TKey>(pageIndex, pageSize, keySelector, null);
}

如何传递Expression参数?

1 个答案:

答案 0 :(得分:1)

C#编译器根据上下文将lambda转换为Expression<Func<...>>Func<...>,因此您只需将lambda传递给Paginate

var paginatedList = repository.Paginate(0, 10, e => e.EntityId);

上面,e => e.EntityId被转换为Expression<TEntity,TKey>,其中TEntity是您的存储库TEntity的类型,而TKeyEntityId的类型1}}。