Новые возможности: расширения запросов
Дата последнего изменения: 12 апреля 2010 г.
Применимо к: SharePoint Foundation 2010
В Microsoft SharePoint Foundation 2010 есть несколько новых способов запроса и фильтрации данных.
Поддержка запросов для кода на стороне сервера
Запросы данных в коде сервера стали намного проще и мощнее в SharePoint Foundation 2010.
Поставщик LINQ to SharePoint
Если коду требуется запросить данные списка, больше не нужно составлять запрос Collaborative Application Markup Language (CAML). В SharePoint Foundation 2010 используется поставщик LINQ to SharePoint, который позволяет коду запрашивать списки SharePoint из кода сервера с помощью синтаксиса LINQ. Поставщик переводит запросы LINQ в запросы CAML для передачи в базу данных контента. Так как SharePoint Foundation 2010 также добавляет новый элемент Join в схему запросов, в запросах LINQ можно использовать явные и неявные соединения с помощью ключевого слова join. (См. раздел "Список поддерживаемых соединений в запросах CAML" ниже). Данные в списки можно записывать также с помощью поставщика. Как обычно, при использовании поставщика LINQ нужны классы, предоставляющие объектно-ориентированный интерфейс для реляционных баз данных контента. Эти классы создаются средством SPMetal, которое включено в SharePoint Foundation 2010. Дополнительные сведения о поставщике LINQ to SharePoint см. в статье Управление данными с помощью LINQ в SharePoint. Дополнительные сведения о SPMetal см. в статье SPMetal.
Синтаксис LINQ можно использовать в коде, даже если поставщик LINQ to SharePoint не используется. С помощью синтаксиса LINQ можно запросить любой объект SharePoint Foundation, реализующий интерфейс IEnumerable<T>. Дополнительные сведения см. в статье, посвященной LINQ to Objects.
Список поддерживаемых соединений в запросах CAML
Теперь в одном запросе можно соединять несколько списков с помощью нового элемента Элемент Join (View). Используйте элемент Элемент ProjectedFields (представление), чтобы указать, какие поля списка нужно включить в результаты. При использовании этих элементов нужно учитывать некоторые сведения. Дополнительные сведения см. в статье Соединения списков и проекции.
Запросы в коде на стороне клиента
Способ доступа клиентских приложений к данным SharePoint Foundation значительно изменился.
Запросы в клиентской объектной модели
Запросы в клиентской объектной модели можно создавать двумя способами:
Напишите запросы CAML для использования с классом SPQuery.
Запросите любой объект SharePoint Foundation, реализующий интерфейс IEnumerable<T>, с LINQ to Objects.
Поддержка платформы служб данных ADO.NET
Если клиентское приложение не использует новую клиентскую объектную модель SharePoint Foundation и требуется только запросить данные списка, можно запросить базы данных контента с помощью Платформа служб данных ADO.NET.
Избегайте использования данных SharePoint для веб-служб
В ранних версиях SharePoint Foundation предоставлялся набор веб-служб для реализации взаимодействия клиента с развертываниями SharePoint Foundation. Некоторые из этих служб, такие как List Data Retrieval Web Service, все еще поддерживаются для обеспечения обратной совместимости и взаимодействия с клиентами веб-служб. Для обеспечения наилучшей производительности и удобства использования рекомендуется применять клиентскую объектную модель или платформу служб данных ADO.NET.
Избегайте прямых вызовов owssvr.dll
В пакет SDK Microsoft SharePoint Foundation 2010 все еще входит документация о доступе кода на стороне клиента к развертываниям SharePoint Foundationс использованием вызовов RPC, но эти сведения включены только для помощи при устранении неполадок существующих клиентских приложений, которые используют такие вызовы. Для повышения степени совместимости приложения с будущими версиями SharePoint Foundation рекомендуется избегать прямых вызовов файла owssvr.dll для клиентского доступа.