вторник, 29 апреля 2014 г.

Поиск по Lookup полям с помощью CAML

Lookup поля в SharePoint представляются своего рода структуру, содержащую два свойства LookupId и LookupValue, которые, когда вы делаете .ToString() отображаются как {LookupId;#LookupValue}, то есть, если у вас в списке контактов есть поле ссылающееся на список отделов, то оно может выглядеть так: {1;#IT}. И то что при отображении этого поля его истинная структура скрывается, особенно, если вы недавно начали использовать CAML, вполне может запутать, в результате чего вы напишете что-то типа:

                        
               SPQuery query = new SPQuery
               {
                   Query = @"
                                
                                   
                                   12345
                                
                             "
               };
               SPListItemCollection items = itemsList.GetItems(query);

И, кстати, если вы хотите искать по значению (то есть, по текстовой составляющей), то это сработает. А если вы ищите по ID, то этот поиск не даст никаких результатов. Для поиска Lookup-полях по ID нужно немного изменить запрос. Вот так:

 
                SPQuery query = new SPQuery
                {
                    Query = @"
                                
                                   
                                   12345
                                
                             "
                };
                SPListItemCollection items = itemsList.GetItems(query); 

Комментариев нет:

Отправить комментарий