NEST的通用类型无效

时间:2018-10-04 17:19:34

标签: c# nest

我有这种方法要设为通用类型。这将允许该方法接受我传入的任何类模型,例如Blog模型,Post模型,Author模型等。

因此,无论何时调用此方法,我都将传入模型并进行查询。

public T SearchIndex(T model, string query)
{
    var srchService = client.Search<model>(s => s
    .Query(q => q
        .Match(m => m.Query("hello"))
    ));

    return T;
}

我正在使用elasticsearch的NEST。我想避免为所有模型重复代码。从上面可以看出,T => T是在这种情况下无效的类型。

1 个答案:

答案 0 :(得分:1)

您的代码是完全错误的。您正在混合类型和变量。
具体来说,T是一种类型,您不能返回类型。 model是一个变量,您不能将变量用作泛型类型参数。

也许您想要这个吗?

public T SearchIndex<T>(string query)
{
    return client.Search<T>(s => s
    .Query(q => q
        .Match(m => m.Query("hello"))
    ));
}