Sitecore 7 LinQ POCO类-如何从树列表获取数据?

Sitecore 7 LinQ POCO类-如何从树列表获取数据?,sitecore,sitecore7,Sitecore,Sitecore7,我刚开始使用SOLR与Sitecore 7的集成。我设法遵循一些指南并构建了一个“POCO”类(继承自SearchResultItem),该类允许我执行LINQ查询和搜索数据,如下面的示例所示: 公共类MySearchItem:SearchResultItem { [索引字段(“文本字段”)] 公共字符串文本字段 { 得到; 设置 } [IndexField(“Drop Link”)] 公共身份证投递 { 得到; 设置 } [索引字段(“树列表”)] 公共可数树列表 { 得到; 设置 } }

我刚开始使用SOLR与Sitecore 7的集成。我设法遵循一些指南并构建了一个“POCO”类(继承自SearchResultItem),该类允许我执行LINQ查询和搜索数据,如下面的示例所示:

公共类MySearchItem:SearchResultItem
{
[索引字段(“文本字段”)]
公共字符串文本字段
{
得到;
设置
}
[IndexField(“Drop Link”)]
公共身份证投递
{
得到;
设置
}
[索引字段(“树列表”)]
公共可数树列表
{
得到;
设置
}
}
当我使用下面的代码执行查询时,我观察到结果项中的TextField和DropLink属性被正确填充,分别使用TextField和DropLink的内容和ID。但是,正在将TreeList属性检索为null。我已经检查了明显的提示,并确保提示正确反映了sitecore模板中的字段名,并且根据“项目存储桶和搜索的开发人员指南”,sitecore 7 IEnumerable文档自动受支持

var index=ContentSearchManager.GetIndex(“sitecore\u master\u index”);
使用(var context=index.CreateSearchContext())
{
var results=context.GetQueryable();
结果=结果。其中(item=>item.TemplateName==“自定义Sitecore模板”);
}
该字段位于索引器中,因为调用了results.First()[“TreeList”]似乎显示了我要查找的数据。这是读取数据的正确方法吗

此外,在我的“POCO”类中是否有可能加入其他类型?假设我想查询树列表中某个项的属性。我将如何着手实施这一点?我是否正确地假设sitecore需要我的树列表类型的TypeConverter来正确解析除ID以外的类型中的树列表,以便执行以下操作

[IndexField(“树列表”)]
公共可数树列表
{
得到;
设置
}
如能提供任何帮助/指导以了解此行为,将不胜感激

谢谢

更新

我已经按照这篇文章中的建议将此作为错误报告提交。如果有人遇到此问题,他们会确认这是一个问题,并建议以下解决方法:

将以下行添加到Sitecore.ContentSearch.Solr.Indexes.config文件的部分:

<typeMatch typeName="guidCollection"      type="System.Collections.Generic.IEnumerable`1[System.Guid]"    fieldNameFormat="{0}_sm"  multiValued="true"   settingType="Sitecore.ContentSearch.SolrProvider.SolrSearchFieldConfiguration, Sitecore.ContentSearch.SolrProvider" /> 
<typeMatch typeName="stringCollection"    type="System.Collections.Generic.IEnumerable`1[System.String]"   fieldNameFormat="{0}_sm"  multiValued="true"   settingType="Sitecore.ContentSearch.SolrProvider.SolrSearchFieldConfiguration, Sitecore.ContentSearch.SolrProvider" />
<typeMatch typeName="intCollection"          type="System.Collections.Generic.IEnumerable`1[System.Int32]"     fieldNameFormat="{0}_im"   multiValued="true"   settingType="Sitecore.ContentSearch.SolrProvider.SolrSearchFieldConfiguration, Sitecore.ContentSearch.SolrProvider" />


希望这有帮助

我也遇到了同样的问题,通过检查配置文件Sitecore.ContentSearch.Solr.Indexes.config,似乎该类型没有映射到Solr提供程序

这确实很奇怪,因为在文档《项目存储桶和搜索的开发人员指南》中,它明确指出,开箱即用应该能够映射
IEnumerable
的类型


请您尝试将多重列表字段的类型从
IEnumerable
改为
List
,并检查这是否解决了您的问题?

立即生效!谢谢。您应该将此作为文档或配置错误报告给Sitecore支持