Tridion:是否替换Query.QueryOperator方法?

Tridion:是否替换Query.QueryOperator方法?,tridion,tridion-2011,tridion-content-delivery,Tridion,Tridion 2011,Tridion Content Delivery,Query.QueryOperator.AND\u字段 我们在TridionR5.3VBScript模板中使用了这种方法,效果很好。 最近,在迁移到Tridion2011SP1时,我们尝试使用这种方法,但不起作用。 据我们了解,这种方法在新的tridion版本中被贬低 根据论坛中的一些帖子,我们还在CD_Storage_Conf中启用了以下行: <SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.me

Query.QueryOperator.AND\u字段 我们在TridionR5.3VBScript模板中使用了这种方法,效果很好。 最近,在迁移到Tridion2011SP1时,我们尝试使用这种方法,但不起作用。 据我们了解,这种方法在新的tridion版本中被贬低

根据论坛中的一些帖子,我们还在CD_Storage_Conf中启用了以下行:

<SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.meta.MsSqlSearchFilterHome" defaultStorageId="defaultdb"/> 
<Item typeMapping="Query" storageId="defaultdb"/>

问题是,“Query.QueryOperator.AND_Field”方法的替换是什么?如何在C#中使用此筛选器? 如何使用支持API文件中提到的代理查询机制


谢谢。

在SDL Tridion 2011 Content Delivery中,您可以创建一个
查询
对象,并使用
设置条件
方法向其添加一个
条件
对象。
查询
对象只接受一个条件对象
条件
对象反过来可以引用树结构中的其他
条件
对象

有关使用AND和OR运算符创建查询过滤器的示例,请参阅SDL LiveContent中的SDL Tridion 2011 SP1文档

//架构的ID为511(文章)或34(新闻稿)。
ItemSchemaCriteria IsArticle=新的ItemSchemaCriteria(511);
ItemSchemaCriteria IsPressRelease=新的ItemSchemaCriteria(34);
标准IsArticleOrPressRelease=标准工厂。或(IsArticle,IsPressRelease);
//项目类型为16(组件)。
ItemTypeCriteria IsComponent=新的ItemTypeCriteria(16);
//上述两个条件都必须为真
Criteria AllCriteria=CriteriaFactory.和(IsArticleOrPressRelease,IsComponent);
//将这些条件添加到查询中
Query MyQuery=新查询();
MyQuery.Criteria=AllCriteria;

你好,David,您能告诉我查询类属于哪个命名空间吗?我们可以使用Tridion.ContentDelivery.DynamicContent.Query;orTridion.ContentDelivery.DynamicContent.Filters;但后者已经过时了?我尝试使用第一个方法,但找不到SetCriteria方法。谢谢,你好,休斯顿。它肯定是Tridion.ContentDelivery.DynamicContent.Query。它是JavaAPI中的setCriteria。也许LiveContent中的示例有点错误?查看CHM文档(Content Delivery ASP.NET API.CHM),它显示了一个Criteria属性,允许设置和获取。你能试试吗?休斯顿。我刚刚测试过,它确实是MyQuery.Criteria=AllCriteria;更新了答案,并在LiveContents中留下了一条评论。在我看来,您正在搜索在两个日期之间首次发布的项目。您将在SDL Tridion 2011内容交付中使用的条件对象是ItemInitialPublishDateCriteria对象。通常,应该避免使用AddSelectString()方法,因为虽然SDL尽最大努力使Tridion的API向后兼容,但它使用的数据库格式可能会改变。此外,它使代码数据库不可知。初始发布日期不是自定义元数据,而是系统元数据。ItemInitialPublishDate不是字段,而是条件对象。请重新阅读我的答案、在线文档和帮助文件。用法:Criteria InitiallyPublishDateTerDate=新项目InitiallyPublishDateCriteria(起始日期,Criteria.GreaterThanOrEqual);Criteria initiallyPublishedBeforeDate=新项目InitialPublishDateCriteria(endDate,Criteria.lessthanRequal);Criteria InitiallyPublishedBetween Dates=CriteriaFactory.And(InitiallyPublishedTerDate,initiallyPublishedBeforeDate);。将此标准与其他标准结合起来