如何生成泛型类型的索引。这是我将代码插入到由.I定义的泛型索引中的代码。我在 Tres emp 部分中得到错误“Tres是一种类型,在给定的上下文中无效“
public void InsertDocument<Tres>(ElasticClient es, Tres emp,IndexName name) where Tres: new()
{
es.Index<Tres>(**Tres emp**, x => x.Index(name).Type("logs"));
}
答案 0 :(得分:0)
您必须为通用“Tres”类型定义引用。要按预期执行泛型类型的功能,您应该创建一个从其派生的其他elasticsearch索引类的基类。因此,您可以通过这种方式传递自定义弹性搜索索引类。
首先,为Elasticsearch索引类创建一个基类。
flex: 1
我提供了一个示例Elasticsearch索引模型;
public class EsIndicesBaseClass
{
}
将您的通用方法更改为
public class EsSampleIndexModel : EsIndicesBaseClass
{
public string SampleProperty{get;set;}
}
用法;
public void InsertDocument<Tres>(ElasticClient es, Tres emp,IndexName name) where Tres: EsIndicesBaseClass
{
es.Index<Tres>(emp, x => x.Index(name).Type("logs"));
}