Могу ли я получить дополнительные поля для SPListItem из SPQuery, для которого установлены ViewFields?

Я получаю SPListItems из SPList с помощью SPQuery, в котором установлены ViewFields. Я использую ViewFields для повышения производительности. Однако для некоторых элементов мне нужны дополнительные данные. Я знаю, что могу просто снова получить один элемент с помощью нового запроса. Однако мне интересно, есть ли более эффективный способ, который позволил бы мне просто вытащить нужные мне дополнительные поля?


person skolima    schedule 02.07.2010    source источник


Ответы (1)


Невозможно указать, что вы хотите включить поле только в том случае, если выполняются определенные критерии. Итак, ваши варианты:

  • Всегда получайте все необходимые поля
  • Сделать несколько запросов. Здесь я предлагаю вам сделать один для элементов, где вам не нужны дополнительные поля, и один для элементов, где они вам нужны, вместо того, чтобы начинать делать запросы для каждого элемента.
  • Если вы находитесь на сервере, используйте GetItemById, чтобы получить полные SPListItem для ваших специальных предметов.
  • Создайте вычисляемое поле, которое будет пустым, если критерии не выполняются, а в противном случае это объединение ваших дополнительных полей. Вы можете включить это поле в свой общий запрос
person Per Jakobsen    schedule 02.07.2010
comment
Условное включение поля - это не совсем то, что я имел в виду, мой текущий сценарий - это третья возможность, которую вы упомянули. Я искал что-то вроде spListItem.LoadAdditionalFields(params string[] fields); :-) - person skolima; 02.07.2010
comment
Чем то, что вы ищете, отличается от третьего варианта выше, с точки зрения производительности разница незначительна - person Vladi Gubler; 04.07.2010