0

我有一个功能,

public static IPagedResponse<T> GetPagedResponse<T, TAnon>(
        this IQueryable<TAnon> query, 
        QueryableRequestMessage request)
    where T : class
{
    //...
}

我正在尝试将查询作为IQueryable匿名类型传递。

var query = _repository.All.Select(
    i => new //anon type
        {
            i.Id,
            i.Name,
        }
    );

var result = query.GetPagedResponse<EftInterfaceDto, ??????>(request);

问题是我不知道用什么代替???????它似乎无法推断出来。任何使用.GetType()typeof()我尝试过的组合都失败了。

我尝试将函数更改为,IQueryable<dynamic>但这导致了其他错误,即表达式树中不允许动态。

哈克:

如果我将功能更改为此,我可以使它工作:

public static IPagedResponse<T> GetPagedResponse<T, TAnon>(
        this IQueryable<TAnon> query, 
        QueryableRequestMessage request,
        T typeSample)
    where T : class
{
    //...
}

然后传入一个实例T

var result = query.GetPagedResponse(request, new SomeClassOfT());

这样,我可以使用类型推断来确定匿名类型TAnon,并且在调用泛型时不需要显式(<types>不需要)。

但是,我不想这样做,因为显然不清楚我在做什么。

4

0 回答 0