2012-10-11 2 views
2

브로커 쿼리 메커니즘 (Tridion 2011)에서 SetCustomMetaQuery를 대체 할 수있는 것은 무엇입니까? this post을 통해 많은 도움을 받았으며 이전에 게시했습니다.Tridion 필터 : SetCustomMetaQuery 대체품

query.SetCustomMetaQuery("KEY_NAME='Key' AND KEY_STRING_VALUE >= 'Yes'"); 

에 대한

나는

CustomMetaValueCriteria criteria1 = new CustomMetaValueCriteria(new CustomMetaKeyCriteria("Key"), "Yes"); 
mainCriteria =CriteriaFactory.And(mainCriteria, criteria1); 
query.Criteria = mainCriteria; 

을 시도하지만 필터의 CT 중 하나에 두 가지 예 아래에 붙어있다.

query.SetCustomMetaQuery("(((KEY_NAME='EventStartDate' AND 
KEY_DATE_VALUE >= '" + lowerDate + "')) or 
((KEY_NAME='EventEndDate' AND KEY_DATE_VALUE >= '" + lowerDate + "')))"") 

query.SetCustomMetaQuery("KEY_NAME = 'Publication_Issue_Date' and 
((convert(varchar(10), key_date_value, 101) = convert(varchar(10), 
cast('" + sIssueDate + "' as datetime), 101)) or 
key_string_value like '%" + dtIssue[%=nNumber%].Year + "-0" + dtIssue[%=nNumber%].Month + "-" + dDay[%=nNumber%] + "%')"); 

은이 좀 도와 주 시겠어요?

답변

2

생각 나는 이렇게 찌를 것이므로 벗어날 수 있습니다! 첫 번째 예를 들어,이게 어떻게

:

CustomMetaValueCriteria criteria1 = new CustomMetaValueCriteria(new CustomMetaKeyCriteria("EventStartDate"), lowerDate, Criteria.GreaterThanOrEqual); 
CustomMetaValueCriteria criteria2 = new CustomMetaValueCriteria(new CustomMetaKeyCriteria("EventEndDate"), lowerDate, Criteria.GreaterThanOrEqual); 

OrCriteria or = new OrCriteria(criteria1, criteria2); 

는 "lowerDate"는 날짜 시간이라고 가정합니다.

두 번째는 "Publication_Issue_Date"의 존재와 sIssueDate 변수 또는 날짜의에서 문자열 메타 데이터 값이 있다는 동일 어떤 KEY_DATE_VALE위한 그것의 검사처럼 보이는, 약간의 혼란이다. 그렇게 될 것입니까?

CustomMetaKeyCriteria criteria1 = new CustomMetaKeyCriteria ("Publication_Issue_Date") 
CustomMetaValueCriteria criteria2 = new CustomMetaValueCriteria(sIssueDate); 
AndCriteria andCriteria = new AndCriteria(criteria1, criteria2); 

string dt = dtIssue[%=nNumber%].Year + "-0" + dtIssue[%=nNumber%].Month + "-" + dDay[%=nNumber%]; 
CustomMetaValueCriteria criteria3 = new CustomMetaValueCriteria(dt, Criteria.Like) 

OrCriteria or = new OrCriteria(andCriteria, criteria3); 

건배

2

으로 시도하십시오 :

CustomMetaValueCriteria criteria1 = new CustomMetaValueCriteria(new CustomMetaKeyCriteria("Key"), "Yes", Criteria.GreaterThanOrEqual); 

이 작동하는지 알려주세요.

+0

안녕 다니엘, 나는 코드 샘플의 첫 번째 조각이 이미 피곤이 ... 그리고 이것은 내가 지난 2 개 코드 샘플에 도움이 ... 수있는 당신을 원해요 ... 잘하시기 바랍니다 작동 도움? –