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