Как мы проверяем наличие элементов по идентификатору в списках SharePoint?

Я хочу получить элемент из списка, не загружая все элементы списка. Я знаю, что могу сделать это, позвонив в SPList.getElementbyId(myID), но если я не знаю, существует ли этот myID в списке, как мне его проверить? Да, я мог бы использовать

SPListItem myItem = myList.Items[myID];
if (myItem == null)
{
   // log that we don't have this item
}

Однако таким образом, когда я вызываю myList.Items, все элементы списка загружаются в объект myList (и если у меня есть 40 000 элементов, это действительно проблема производительности), поэтому я бы предпочел использовать:

SPListitem myItem = myList.getElementById(myID);

Таким образом, я не буду называть свойство Items, и нам не нужно будет загружать эти элементы. Теперь проблема в том, что метод getElementById вызовет исключение, если этот идентификатор не присутствует в списке. Помещать его в статус try/catch - не решение, потому что мы могли бы захотеть проверить несколько сотен идентификаторов, и обработка всех их бросков снова приведет к проблемам с производительностью. Есть ли еще идеи проверить наличие элемента с заданным идентификатором?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
950
1

Ответы 1

Вы можете создать запрос со всеми идентификаторами, которые выполняются при проверке, и сравнить возвращенный список с идентификаторами, которые вы проверяете, и определить, какие из них действительны, а какие нет.

Таким образом, вы получаете только то, что вам нужно, но все еще находите пропавшие.

Да, SPQuery - это способ. Ваш запрос может выглядеть так: <Where> <Eq> <FieldRef Name = 'ID' /> <Value Type = 'Counter'> "+ ID +" </value> </Eq> </Where>

Marian Polacek 12.01.2009 23:14

И запрос не загрузит все содержимое Items? Спасибо за подсказку! Любые другие идеи будут оценены.

Anatol 13.01.2009 11:48

Другие вопросы по теме