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-файла параметров