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


SPMetal

Дата последнего изменения: 9 марта 2015 г.

Применимо к: SharePoint Foundation 2010

SPMetal — это программа командной строки, которая создает классы сущностей, предоставляющие объектно-ориентированный интерфейс для баз данных контента Microsoft SharePoint Foundation. Эти классы в основном используются в запросах LINQ to SharePoint, но они также используются для добавления, удаления или изменения элементов списков при разрешении конфликта параллельного доступа. И наконец, их можно использовать в качестве замены стандартной объектной модели SharePoint Foundation для создания ссылок на контент.

Это средство включено в SharePoint Foundation и находится в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN.

Средство SPMetal обычно выполняется как предварительно построенная команда в Microsoft Visual Studio, поскольку создаваемый им код обычно является частью решения, которое содержит новый тип сайта, постоянно совершенствующийся в течение цикла разработки. Поскольку средство SPMetal при каждом запуске перезаписывает создаваемые им файлы для заданного пути вывода и заданного веб-сайта, не следует вносить изменения в эти файлы. Создаваемые средством классы относятся к типу partial, поэтому в них можно добавлять члены в создаваемых вручную файлах кода.

Если решение создано на основе существующего типа сайта, например на основе поставляемого с SharePoint Foundation сайта группы, и ссылается только на списки, которые всегда имеются на таких сайтах, и поля (столбцы), которые всегда содержатся в этих списках, можно запустить средство SPMetal всего один раз и внести изменения в созданный файл, который не будет перезаписан.

Дополнительные сведения о практических аспектах использования SPMetal см. в статье Практическое руководство. Использование программы SPMetal.

Базовый синтаксис

Средство SPMetal использует базовый синтаксис других программ командной строки Windows:

SPMetal [options]

Перед каждым параметром стоит косая черта. Для большинства параметров требуются значения, в этом случае после имени параметра стоит двоеточие, после которого идет значение.

SPMetal /option1 /option2:value /option3:"value with a space"

Параметры могут стоять в любом порядке. Все параметры указывать необязательно, но если включен параметр, принимающий значение, необходимо задать это значение. Если значение содержит пробелы, необходимо заключить его в кавычки (").

При использовании отдельного параметра "/?" в стандартном расположении вывода отображается краткая справка о средстве.

Параметры командной строки

В следующей таблице перечислены параметры и их назначение.

Параметр

Определение значения

Пример

Комментарии

web

Полный и абсолютный URL-адрес веб-сайта, данные которого моделируются классами сущностей.

/web:http://ContosoServer/Marketing

Является обязательным. Для имени сервера можно указать номера портов, например /web:http://ContosoServer:5555/Marketing.

Не включайте в URL-адрес главную страницу или какие-либо другие страницы.

code

Относительный или абсолютный путь и имя файла для файла вывода.

/code:MarketingSite.cs

Если данный параметр не используется, созданный код в потоковом режиме передается в стандартное расположение вывода.

Если расширение имени файла не указано или отличается от CS или VB, необходимо использовать параметр language.

Имя файла (без расширения) также используется в начале имени класса, производного от DataContext; в данном примере этот класс называется MarketingSiteDataContext. Производный класс представляет списки и данные всего веб-сайта, поэтому следует выбрать имя, которое имеет соответствующее значение. (Режим именования можно переопределить с помощью XML-файла параметров SPMetal.)

language

Язык программирования созданного кода.

/language:csharp

Единственными возможными значениями являются "csharp" и "vb".

Если для значения параметра code в качестве расширения имени файла используется "cs" или "vb", средство SPMetal может определить язык, поэтому параметр language указывать не нужно.

namespace

Пространство имен, которое содержит объявления классов сущностей.

/namespace:Contoso.TeamActivityReports

Если данный параметр не используется, созданный код не задает пространство имен, а откомпилированная сборка рассматривает пространство имен по умолчанию, указанное в свойствах проекта Visual Studio, как пространство имен созданных классов.

useremoteapi

Нет значения

/useremoteapi

Этот параметр обозначает, что значение параметра web указывает на сервер, отличный от того, на котором запущено средство SPMetal. Одно из возможных применений этого параметра заключается в создании кода для веб-сайта при интерактивном развертывании SharePoint, куда планируется отправить решение как для песочницы.

user

Пользователь, в контексте которого выполняется средство SPMetal.

/user:Contoso\bob

Используйте данный параметр, если не хотите, чтобы средство SPMetal запускалось в вашем контексте. Укажите домен.

password

Пароль для пользователя, указанного в параметре user.

/password:$5U+ryz

Используйте в сочетании с параметром user.

serialization

Указывает, являются ли объекты, которые создают экземпляры созданных классов, сериализуемыми.

/serialization:unidirectional

Единственными возможными значениями являются "unidirectional" и "none". Укажите значение "unidirectional", если требуется, чтобы объекты были сериализуемыми. Средство SPMetal добавляет в объявления классов и свойств соответствующие атрибуты из пространства имен System.Runtime.Serialization и добавляет обработчики для события десериализации.

Если данный параметр не используется, предполагается, что задано значение "none".

parameters

Определяет путь и имя XML-файла со значениями, переопределяющими настройки по умолчанию для SPMetal.

/parameters:MarketingSite.xml

Обычно для различных веб-сайтов не используется один и тот же XML-файл параметров, поэтому назовите файл именем веб-сайта.

Дополнительные сведения о файле параметров см. в статье Переопределение значений SPMetal по умолчанию с помощью XML-файла параметров.

Пример

Создание кода C#:

SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.cs

Создание кода Visual Basic с настраиваемыми значениями параметров:

SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.vb /parameters:MarketingSite.xml

Создание кода Visual Basic из заданного контекста пользователя:

SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.vb /user:Contoso\sally /password:7Yj38d

См. также

Задачи

Практическое руководство. Использование программы SPMetal

Концепции

Переопределение значений SPMetal по умолчанию с помощью XML-файла параметров

Классы сущности

Правила создания кода SPMetal по умолчанию