Поделиться через


Новые возможности: расширения запросов

Дата последнего изменения: 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 для клиентского доступа.