Partager via


SPMetal

Dernière modification : vendredi 4 février 2011

S’applique à : SharePoint Foundation 2010

SPMetal est un outil en ligne de commande qui génère des classes d’entité, lesquelles fournissent une interface orientée objet aux bases de données de contenu Microsoft SharePoint Foundation. Ces classes sont principalement utilisées dans LINQ pour des requêtes SharePoint ; mais elles sont également utilisées pour ajouter, supprimer et modifier des éléments de liste avec une résolution de conflit d’accès concurrentiel. Enfin, elles peuvent être utilisées comme alternative au modèle objet SharePoint Foundation standard à des fins de contenu de référencement.

L'outil est inclus avec SharePoint Foundation et se trouve dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN.

SPMetal est généralement exécuté en tant que commande avant génération (prebuild) dans Microsoft Visual Studio, car le code qu’il génère fait généralement partie d’une solution qui inclut un nouveau type de site qui évolue lui-même pendant le cycle de développement. Dans la mesure où SPMetal écrase les fichiers qu’il génère à chaque exécution, pour un chemin de sortie donné par rapport à un site Web donné, vous ne devez pas apporter de modifications à ces fichiers. Les classes qu’il génère sont de type partial, ce qui fait que vous pouvez leur ajouter des membres dans des fichiers de code séparés, créés manuellement.

Si votre solution repose sur un type de site existant, tel que Team Site qui est inclus dans SharePoint Foundation, et s’il référence seulement les listes qui sont toujours présentes dans de tels sites et uniquement les champs (colonnes) qui sont toujours présents dans ces listes, vous pouvez exécuter SPMetal une seule fois et apporter des modifications au fichier généré qui ne sera pas remplacé.

Pour plus d'informations sur les aspects pratiques de l'utilisation de SPMetal, consultez Procédure : utiliser SPMetal.

Syntaxe de base

SPMetal utilise la syntaxe de base des autres outils en ligne de commande Windows :

SPMetal [options]

Chaque option est précédée d'une barre oblique. La plupart des options nécessitent des valeurs, auquel cas le nom de l'option est suivi de deux points et la valeur suit les deux points :

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

Leur ordre n'a pas d'importance. Les options ne sont pas toutes requises, mais si vous incluez une option qui prend une valeur, vous devez lui affecter une valeur. Si une valeur contient des espaces, vous devez placez toute la valeur entre guillemets (").

L'utilisation de l'option « /? » affiche une brève section d'aide sur l'outil dans la sortie standard.

Options de ligne de commande

Le tableau suivant répertorie les options et leurs rôles.

Option

Définition de la valeur

Exemple

Commentaires

web

L'URL complète et absolue du site Web dont les données sont modelées par les classes d'entité.

/web:http://ContosoServer/Marketing

Obligatoire. Vous pouvez avoir des numéros de port dans le nom du serveur ; par exemple, /web:http://ContosoServer:5555/Marketing.

N'incluez pas la page d'accueil ou toute autre page dans l'URL.

code

Le chemin d'accès relatif ou absolu et le nom de fichier du fichier de sortie.

/code:MarketingSite.cs

Si cette option n'est pas utilisée, le code généré est dirigé en flux vers une sortie standard.

Si aucune extension de nom de fichier n’est spécifiée ou si l’extension de nom de fichier indique « cs » ou « vb », l’option language doit être utilisée.

Le nom de fichier (exclusif de l'extension) est également utilisé pour former le début du nom d'une classe qui dérive de DataContext ; dans cet exemple, la classe est nommée MarketingSiteDataContext. La classe dérivée représente les listes et les données de l'ensemble du site Web, ce qui fait que vous devez choisir un nom de fichier qui véhicule un sens. (Vous pouvez remplacer ce comportement de nommage par un fichier XML de paramètres SPMetal.)

langage

Le langage de programmation du code généré.

/language:csharp

Les seules valeurs possibles sont « csharp » et « vb ».

Si la valeur de l'option code a « cs » ou « vb » comme extension de nom de fichier, SPMetal peut en déduire le langage et l'option language n'est pas nécessaire.

espace de noms

L'espace de noms qui contient les déclarations des classes d'entité.

/namespace:Contoso.TeamActivityReports

Si cette option n’est pas utilisée, le code généré ne spécifie aucun espace de noms et l’assembly compilé considère l’espace de noms par défaut spécifié dans les propriétés du projet Visual Studio comme étant l’espace de noms des classes générées.

useremoteapi

Aucune valeur.

/useremoteapi

Cette option indique que la valeur du paramètre web pointe vers un serveur qui n’est pas celui sur lequel s’exécute SPMetal. Une utilisation possible de ce paramètre est de générer du code par rapport à un site Web sur un déploiement en ligne de SharePoint vers lequel vous envisagez de télécharger votre solution en tant que solution en bac à sable (sandbox).

utilisateur

L'utilisateur dont le contexte duquel s'exécute SPMetal.

/user:Contoso\bob

Utilisez cette option si vous ne voulez pas que SPMetal s’exécute dans votre propre contexte. Spécifiez le domaine.

mot de passe

Le mot de passe de l'utilisateur spécifié dans l'option user.

/password:$5U+ryz

Utilisez-le en combinaison avec l'option user.

sérialisation (serialization)

Spécifie si les objets qui instancient les classes générées sont sérialisables.

/serialization:unidirectional

Les seules valeurs possibles sont « unidirectional » et « none ». Spécifiez « unidirectional » si vous voulez que les objets soient sérialisables. SPMetal ajoute des attributs appropriés à partir de l'espace de noms System.Runtime.Serialization aux déclarations de classe et de propriété et ajoute des gestionnaires pour l'événement Deserializing.

Si cette option n'est pas utilisée, « none » est supposé.

paramètres

Identifie le chemin d'accès et le nom d'un fichier XML qui contient des substitutions des paramètres SPMetal par défaut.

/parameters:MarketingSite.xml

En principe, vous ne réutilisez pas exactement le même fichier XML des paramètres pour les différents sites Web, alors affectez au fichier le même nom que le site Web.

Pour plus d'informations sur le fichier des paramètres, consultez Remplacement des valeurs SPMetal par défaut par un fichier XML de paramètres.

Exemple

Générer du code C# :

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

Générer du code Visual Basic avec des paramètres personnalisés :

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

Générer du code Visual Basic à partir d’un contexte utilisateur spécifié :

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

Voir aussi

Tâches

Procédure : utiliser SPMetal

Concepts

Remplacement des valeurs SPMetal par défaut par un fichier XML de paramètres

Classes d’entité

Règles de génération de code par défaut SPMetal