Разница между FieldLinks и Field в Sharepoint - PullRequest
6 голосов
/ 03 мая 2010

Я пытаюсь скопировать пользовательский тип контента из одной сети в другую. Я погуглил и нашел несколько примеров, которые используют FieldLinks и Fields. Я в некотором роде заблудился, какой из них использовать, так как, когда я получаю FieldLinks из моей исходной сети, я получаю 3 поля; при извлечении из полей вернуло мне только 2 поля ... пользовательское поле отсутствует. Я чертовски уверен, что я добавил поля на должном уровне, так как я сделал это через интерфейс. Но при поиске с использованием кода ... цифры просто не складываются.

Итак, помимо этой странной проблемы, я хочу знать, в чем разница между FieldLinks и Fields, и при работе с ними в типах содержимого (программно) какой из них использовать?

Спасибо.

1 Ответ

10 голосов
/ 03 мая 2010

SPFields сами являются полями, а SPFieldLinks являются ссылками на поля. Это хорошая статья, которая подробно объяснит все вещи . В общей практике безопаснее использовать SPFieldLinks, когда вы работаете с фактическим определением типа контента . Тем не менее, я дам краткое резюме здесь.

Списки и веб-сайты содержат фактические поля с полевыми данными. С другой стороны, тип содержимого содержит только ссылку на поле, которая просто указывает на соответствующее поле в списке или в Интернете. Это немного сбивает с толку, потому что типы контента имеют как SPFieldLinkCollection, так и SPFieldCollection.

SPFieldLinkCollection используется в фактическом определении типа контента и является тем, что вы хотели бы использовать в вашей ситуации при копировании типа контента из одной сети в другую. SPFieldLinks соответствуют фактическим элементам в схеме XML для типа контента.

Для сравнения, когда вы вызываете SPFieldCollection типа контента и извлекаете из него поле, на самом деле происходит то, что тип контента проверяет ссылку на соответствующее поле, а затем просматривает список / сеть, чтобы получить фактическое поле , По сути, думайте о SPFieldCollection так же, как работает поиск: он бесполезен без значения поиска и источника поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...