0

我正在将 SQL 查询转换为代理 API 功能。该查询基本上检索基于键和值过滤器的自定义元数据。问题是当我使用或标准加入两个标准时,query.executequery永远需要并且控制永远不会返回。我正在使用的代码如下

        PublicationCriteria pubCriteria = new PublicationCriteria(80);

        //1st query
        CustomMetaKeyCriteria keyCriteria1 = new CustomMetaKeyCriteria("PublicationType");

        CustomMetaValueCriteria valueCriteria11 = new CustomMetaValueCriteria("Report", Criteria.Like);
        CustomMetaValueCriteria valueCriteria12 = new CustomMetaValueCriteria("Video", Criteria.Like);
        Criteria valueCriteria1 = CriteriaFactory.Or(valueCriteria11, valueCriteria12);
        Criteria criteria1 =CriteriaFactory.And(keyCriteria1, valueCriteria1);

        //2nd query

        CustomMetaKeyCriteria keyCriteria2 = new CustomMetaKeyCriteria("Tags");

        CustomMetaValueCriteria valueCriteria21 = new CustomMetaValueCriteria("tcm:80-20641", Criteria.Equal);
        CustomMetaValueCriteria valueCriteria22 = new CustomMetaValueCriteria("tcm:80-20645", Criteria.Equal);
        Criteria valueCriteria2 = CriteriaFactory.Or(valueCriteria21, valueCriteria22);
        Criteria criteria2 =  CriteriaFactory.And(keyCriteria2, valueCriteria2);


        Criteria querycriteria = CriteriaFactory.Or(criteria1, criteria2);
        Criteria finalCriteria = CriteriaFactory.And(pubCriteria, querycriteria);
        Query query = new Query(criteria2);
        query.SetResultFilter(new LimitFilter(10));
        var n = query.ExecuteQuery();

我尝试使用新的 orcriteria 并将标准作为数组传递,但这也不起作用。

4

1 回答 1

0

几个星期前我尝试了同样的方法,它对我有用。我把我的发现放在这里。http://vadalis.com/custom-meta-query-from-tridionbroker-database/

注意:我的经纪人数据库非常小。

于 2014-02-12T17:45:19.077 回答