internal List<T> SearchByText<T>(string index, string searchAgainst, string inquiry) where T : class
{
var searchResponse = client.Search<T>(s => s
.Index(index)
.From(0)
.Size(10)
.Query(q => q
.Match(m => m
.Field(f => f.Title)
.Query(inquiry)
)
)
);
var products = searchResponse.Documents;
return (List<T>)products;
}
我把T作为我的类型,所以我可以接收和搜索所有的索引,但我不能访问f.Title.因为它是未知的,我明白,有什么建议访问f.Title?
在visual studio中出现的错误-------------------。
严重性代码描述 项目文件行抑制状态Error CS1061 'T'不包含'Title'的定义,也找不到接受类型为'T'的第一个参数的可访问扩展方法'Title'(你是否缺少一个使用指令或汇编引用?
问题是,并非所有的 T
可以传递给该方法的可以有一个 Title
属性。
你可以在这个属性上引入一个通用的参数约束。T
表示它必须有一个 Title
属性,或许可以使用一个定义了 Title
属性。然后,您还需要在任何一个 T
您希望传递给本方法的