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