Collections de schémas courants
S'applique à : .NET Framework .NET .NET Standard
Les collections de schémas courants sont les collections de schémas implémentées par chacun des fournisseurs managés .NET. Vous pouvez interroger un fournisseur managé .NET pour établir la liste des collections de schémas prises en charge en appelant la méthode GetSchema
sans argument ou avec le nom de collection de schémas « MetaDataCollections ». Cette méthode retourne un DataTable avec une liste des collections de schémas prises en charge, le nombre de restrictions qu’elles prennent en charge et le nombre d’éléments d’identification qu’elles utilisent. Ces collections décrivent toutes les colonnes requises. Les fournisseurs sont libres d’ajouter d’autres colonnes. Par exemple, le fournisseur de données Microsoft SqlClient pour SQL Server ajoute ParameterName
à la collection de restrictions.
Si un fournisseur est incapable de déterminer la valeur d'une colonne obligatoire, il retourne la valeur null.
Pour plus d’informations sur l’utilisation des méthodes GetSchema
, consultez Collections GetSchema et Schema.
MetaDataCollections
Cette collection expose des informations sur toutes les collections de schémas prises en charge par le fournisseur actuellement utilisé pour se connecter à la base de données.
ColumnName | DataType | Description |
---|---|---|
CollectionName | string |
Nom de la collection à passer à la méthode GetSchema pour retourner la collection. |
NumberOfRestrictions | int |
Nombre de restrictions qui peuvent être spécifiées pour la collection. |
NumberOfIdentifierParts | int |
Nombre de parties dans le nom d'objet identificateur/base de données composite. Par exemple, dans SQL Server, la valeur est 3 pour les tables et 4 pour les colonnes. |
DataSourceInformation
Cette collection de schémas expose des informations sur la source de données à laquelle le fournisseur de données Microsoft SqlClient pour SQL Server est actuellement connecté.
ColumnName | DataType | Description |
---|---|---|
CompositeIdentifierSeparatorPattern | string |
Expression régulière pour mettre en correspondance les séparateurs composites dans un identificateur composite. Par exemple, \. (pour SQL Server).Un identificateur composite est généralement ce qui est utilisé pour un nom d’objet de base de données, par exemple : pubs.dbo.authors ou pubs@dbo.authors .Pour SQL Server, utilisez l’expression régulière \. . |
DataSourceProductName | string |
Nom du produit auquel accède le fournisseur, par exemple « SQLServer ». |
DataSourceProductVersion | string |
Indique la version du produit auquel accède le fournisseur, dans le format natif des sources de données et non dans un format Microsoft. Dans certains cas, DataSourceProductVersion et DataSourceProductVersionNormalized ont la même valeur. |
DataSourceProductVersionNormalized | string |
Version normalisée pour la source de données, telle qu'elle peut être comparée à String.Compare() . Ce format est cohérent pour toutes les versions du fournisseur afin d’empêcher la version 10 d’être triée entre la version 1 et la version 2.Par exemple, SQL Server utilise le format nn.nn.nnnn Microsoft classique.Dans certains cas, DataSourceProductVersion et DataSourceProductVersionNormalized ont la même valeur. |
GroupByBehavior | GroupByBehavior | Spécifie la relation entre les colonnes dans une clause GROUP BY et les colonnes non agrégées dans la liste de sélection. |
IdentifierPattern | string |
Expression régulière qui correspond à un identificateur et dont la valeur de correspondance est l'identificateur. Par exemple : [A-Za-z0-9_#$] . |
IdentifierCase | IdentifierCase | Indique si des identificateurs non entourés de guillemets sont traités ou non comme respectant la casse. |
OrderByColumnsInSelect | bool |
Spécifie si les colonnes d'une clause ORDER BY doivent figurer dans la liste de sélection. Une valeur true indique qu’elles doivent figurer dans la liste de sélection. Une valeur false indique qu’elles ne sont pas requises dans la liste de sélection. |
ParameterMarkerFormat | string |
Chaîne de format représentant la manière de formater un paramètre. Si les paramètres nommés sont pris en charge par la source de données, le premier espace réservé dans cette chaîne doit être l'emplacement où le nom de paramètre doit être formaté. Par exemple, si la source de données attend des paramètres nommés et avec un préfixe : , cette chaîne serait :{0} . En cas de formatage de ce paramètre avec un nom p1 , la chaîne obtenue est :p1 .Si la source de données attend des paramètres avec le préfixe @ , mais qu’ils sont déjà présents dans les noms, cette chaîne serait {0} et le résultat du formatage d’un paramètre nommé @p1 serait @p1 .Pour les sources de données qui n’attendent pas de paramètres nommés et attendent l’utilisation du caractère ? , la chaîne de format peut être spécifiée comme ? . Dans ce cas, le nom de paramètre est ignoré. |
ParameterMarkerPattern | string |
Expression régulière représentant un marqueur de paramètre. Elle a pour valeur de correspondance éventuelle le nom de paramètre. Par exemple, si les paramètres nommés sont pris en charge avec un caractère initial @ qui sera inclus dans le nom de paramètre, ce modèle serait : (\@[A-Za-z0-9_$#]*) .En revanche, si les paramètres nommés sont pris en charge avec un : comme caractère initial ne faisant pas partie du nom de paramètre, ce modèle serait : :([A-Za-z0-9_$#]\*) .Si la source de données ne prend pas en charge les paramètres nommés, ce modèle serait ? . |
ParameterNameMaxLength | int |
Longueur maximale d'un nom de paramètre en caractères. Si les noms de paramètres sont pris en charge, Visual Studio attend que la valeur minimale de longueur maximale soit de 30 caractères. Si la source de données ne prend pas en charge les paramètres nommés, cette propriété retourne zéro. |
ParameterNamePattern | string |
Expression régulière représentant les noms de paramètre valides. Différentes sources de données ont des règles différentes sur les caractères qui peuvent être utilisés pour les noms de paramètres. Si les noms de paramètres sont pris en charge, Visual Studio s’attend à ce que les caractères \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} constituent le jeu minimal de caractères pris en charge qui sont valides pour les noms de paramètres. |
QuotedIdentifierPattern | string |
Expression régulière qui correspond à un identificateur entre guillemets et qui a pour valeur de correspondance l'identificateur proprement dit, sans les guillemets. Par exemple, si la source de données utilise des guillemets doubles pour identifier des identificateurs entre guillemets, ce modèle serait : (([^\\"]\|\\"\\")*) . |
QuotedIdentifierCase | IdentifierCase | Indique si des identificateurs entourés de guillemets sont traités ou non comme respectant la casse. |
StatementSeparatorPattern | string |
Expression régulière représentant le séparateur d'instruction. |
StringLiteralPattern | string |
Expression régulière qui correspond à un littéral de chaîne et dont la valeur de correspondance est le littéral proprement dit. Par exemple, si la source de données utilise des guillemets simples pour identifier des chaînes, ce modèle serait : ('([^']\|'')*') ' |
SupportedJoinOperators | SupportedJoinOperators | Spécifie les types d'instructions SQL jointes prises en charge par la source de données. |
DataTypes
Cette collection de schémas expose des informations sur les types de données pris en charge par la base de données à laquelle le fournisseur est actuellement connecté.
ColumnName | DataType | Description |
---|---|---|
TypeName | string |
Nom du type de données spécifique au fournisseur. |
ProviderDbType | int |
Valeur de type spécifique du fournisseur qui doit être utilisée au moment de spécifier le type d’un paramètre. Par exemple : SqlDbType.Money . |
ColumnSize | long |
Longueur d’une colonne ou d’un paramètre non numérique. Cette valeur fait référence soit à la longueur maximale, soit à la longueur définie pour ce type par le fournisseur. Pour les données caractères, cette valeur correspond à la longueur maximale ou définie, en unités, configurée par la source de données. Pour les types de données de date et d’heure, cette valeur est la longueur de la représentation de chaîne (en supposant la précision maximale autorisée pour le composant fractions de secondes). Si les données sont de type numérique, cette valeur et la limite supérieure de la précision maximale du type de données. |
CreateFormat | string |
Chaîne de format représentant la manière d'ajouter cette colonne à une instruction de définition de données, telle que CREATE TABLE. Chaque élément dans le tableau CreateParameter doit être représenté par un marqueur de paramètre dans la chaîne de format.Par exemple, le type de données SQL DECIMAL nécessite une précision et une échelle. Dans ce cas, la chaîne de format est DECIMAL({0},{1}) . |
CreateParameters | string |
Paramètres de création à spécifier lors de la création d'une colonne de ce type de données. Chaque paramètre de création est listé dans la chaîne, séparé par une virgule dans l’ordre dans lequel il doit être fourni. Par exemple, le type de données SQL DECIMAL nécessite une précision et une échelle. Dans ce cas, les paramètres de création doivent contenir la chaîne « precision, scale ». Dans une commande de texte destinée à créer une colonne DECIMAL avec une précision de 10 et une échelle de 2, la valeur de la colonne CreateFormat peut être DECIMAL({0},{1}) et la spécification de type complète est DECIMAL(10,2) . |
DataType | string |
Nom du type .NET du type de données. |
IsAutoincrementable | bool |
true - Les valeurs de ce type de données peuvent être auto-incrémentées.false - Les valeurs de ce type de données peuvent ne pas être auto-incrémentées.Cette propriété indique simplement si une colonne de ce type de données peut être auto-incrémentée, pas que toutes les colonnes de ce type sont auto-incrémentées. |
IsBestMatch | bool |
true – Le type de données est la correspondance la plus proche entre tous les types de données du magasin de données et le type de données .NET indiqué par la valeur de la colonne DataType .false - Le type de données n’est pas la meilleure correspondance.Pour chaque ensemble de lignes dans lequel la valeur de la colonne DataType est identique, la colonne IsBestMatch n’a la valeur true que dans une seule ligne. |
IsCaseSensitive | bool |
true - Le type de données est de type caractère et respecte la casse.false - Le type de données n’est pas de type caractère ou ne respecte pas la casse. |
IsFixedLength | bool |
true - Les colonnes de ce type de données créées par le langage de définition de données (DDL) seront de longueur fixe.false - Les colonnes de ce type de données créées par le DDL seront de longueur variable.DBNull.Value - Le fait que le fournisseur mappe ce champ avec une colonne de longueur fixe ou de longueur variable n’est pas connu. |
IsFixedPrecisionScale | bool |
true - Le type de données a une précision et une échelle fixes.false - Le type de données n’a pas une précision et une échelle fixes. |
IsLong | bool |
true - Le type de données contient des données très longues ; la définition de données très longues est spécifique au fournisseur.false - Le type de données ne contient pas de données très longues. |
IsNullable | bool |
true - Le type de données autorise la valeur null.false - Le type de données n’autorise pas la valeur null.DBNull.Value - Le fait que le type de données autorise la valeur null n’est pas connu. |
IsSearchable | bool |
true - Le type de données peut être utilisé dans une clause WHERE avec n’importe quel opérateur, à l’exception du prédicat LIKE.false - Le type de données ne peut pas être utilisé dans une clause WHERE avec n’importe quel opérateur, à l’exception du prédicat LIKE. |
IsSearchableWithLike | bool |
true - Le type de données peut être utilisé avec le prédicat LIKE.false - Le type de données ne peut pas être utilisé avec le prédicat LIKE. |
IsUnsigned | bool |
true - Le type de données n’est pas signé.false - Le type de données est signé.DBNull.Value - Non applicable au type de données. |
MaximumScale | short |
Si l’indicateur de type est un type numérique, cette valeur est le nombre maximal de chiffres autorisés à droite de la virgule décimale. Sinon, cette valeur est DBNull.Value . |
MinimumScale | short |
Si l’indicateur de type est un type numérique, cette valeur est le nombre minimal de chiffres autorisés à droite de la virgule décimale. Sinon, cette valeur est DBNull.Value . |
IsConcurrencyType | bool |
true - Le type de données est mis à jour par la base de données à chaque fois que la ligne est modifiée et la valeur de la colonne est différente de toutes les valeurs précédentes.false - Le type de données n’est pas mis à jour par la base de données à chaque fois que la ligne est modifiée.DBNull.Value - La base de données ne prend pas en charge ce type de données. |
IsLiteralSupported | bool |
true - Le type de données peut être exprimé sous la forme d’un littéral.false - Le type de données ne peut pas être exprimé sous la forme d’un littéral. |
LiteralPrefix | string |
Préfixe appliqué à un littéral donné. |
LiteralSuffix | string |
Suffixe appliqué à un littéral donné. |
Restrictions
Cette collection de schémas expose des informations sur les restrictions prises en charge par le fournisseur actuellement utilisé pour se connecter à la base de données.
ColumnName | DataType | Description |
---|---|---|
CollectionName | string |
Nom de la collection à laquelle ces restrictions s'appliquent. |
RestrictionName | string |
Nom de la restriction dans la collection. |
RestrictionDefault | string |
Ignoré. |
RestrictionNumber | int |
Emplacement réel des restrictions de collections dans lequel figure cette restriction particulière. |
ReservedWords
Cette collection de schémas expose des informations sur les mots réservés par la base de données à laquelle le fournisseur est actuellement connecté.
ColumnName | DataType | Description |
---|---|---|
ReservedWord | string |
Mot réservé spécifique du fournisseur. |