Raccolte di schemi comuni
Si applica a: .NET Framework .NET .NET Standard
Le raccolte di schemi comuni sono le raccolte di schemi implementate da ciascun provider gestito .NET. È possibile eseguire una query in un provider gestito .NET per determinare l'elenco delle raccolte di schemi supportate chiamando il metodo GetSchema
senza argomenti oppure con il nome della raccolta di schemi "MetaDataCollections". Questo metodo restituisce un oggetto DataTable con un elenco delle raccolte di schemi supportati, il numero delle restrizioni supportate da ciascuna raccolta e il numero di parti identificatore usate. Tutte le colonne richieste vengono descritte in queste raccolte. I provider hanno la possibilità di aggiungere altre colonne, se necessario. Ad esempio, il provider di dati Microsoft SqlClient per SQL Server aggiunge ParameterName
alla raccolta delle restrizioni.
Se un provider non è in grado di determinare il valore di una colonna richiesta, verrà restituito null.
Per altre informazioni sull'uso dei metodi GetSchema
, vedere GetSchema e raccolte di schemi.
MetaDataCollections
In questa raccolta vengono riportate informazioni su tutte le raccolte di schemi supportate dal provider attualmente usato per la connessione al database.
ColumnName | Tipo di dati | Descrizione |
---|---|---|
CollectionName | string |
Il nome della raccolta da passare al metodo GetSchema per restituire la raccolta. |
NumberOfRestrictions | int |
Il numero di restrizioni che è possibile specificare per la raccolta. |
NumberOfIdentifierParts | int |
Il numero di parti nel nome dell'oggetto di database/identificatore composito. In SQL Server, ad esempio, il valore 3 corrisponde alle tabelle e il valore 4 alle colonne. |
DataSourceInformation
Questa raccolta di schemi espone informazioni sull'origine dati a cui è attualmente connesso il provider di dati Microsoft SqlClient per SQL Server.
ColumnName | Tipo di dati | Descrizione |
---|---|---|
CompositeIdentifierSeparatorPattern | string |
L'espressione regolare che corrisponde ai separatori compositi in un identificatore composito. Ad esempio, \. (per SQL Server).Un identificatore composito viene generalmente usato per un nome dell'oggetto di database, ad esempio pubs.dbo.authors o pubs@dbo.authors .Per SQL Server, usare l'espressione regolare \. . |
DataSourceProductName | string |
Nome del prodotto a cui accede il provider, ad esempio "SQLServer". |
DataSourceProductVersion | string |
Indica la versione del prodotto a cui ha avuto accesso il provider, nel formato nativo delle origini dati e non in formato Microsoft. In alcuni casi, DataSourceProductVersion e DataSourceProductVersionNormalized sono lo stesso valore. |
DataSourceProductVersionNormalized | string |
Una versione normalizzata per l'origine dati, che è possibile confrontare con String.Compare() . Il formato è lo stesso in tutte le versioni del provider per evitare che la versione 10 venga elencata tra la versione 1 e la versione 2.In SQL Server, ad esempio, si usa il tipico formato Microsoft nn.nn.nnnn .In alcuni casi, DataSourceProductVersion e DataSourceProductVersionNormalized sono lo stesso valore. |
GroupByBehavior | GroupByBehavior | Specifica il rapporto tra le colonne nella clausola GROUP BY e le colonne non aggregate nell'elenco di selezione. |
IdentifierPattern | string |
Un'espressione regolare che corrisponde a un identificatore e dispone di un valore di corrispondenza dell'identificatore. Ad esempio: [A-Za-z0-9_#$] . |
IdentifierCase | IdentifierCase | Indica se per gli identificatori non delimitati viene eseguita la distinzione tra maiuscole e minuscole. |
OrderByColumnsInSelect | bool |
Specifica se le colonne nella clausola ORDER BY devono essere presenti nell'elenco di selezione. Un valore pari a true indica che le colonne devono trovarsi nell'elenco di selezione. Un valore pari a false indica che le colonne non devono trovarsi nell'elenco di selezione. |
ParameterMarkerFormat | string |
Una stringa di formato che rappresenta la modalità di formattazione di un parametro. Se i parametri denominati sono supportati dall'origine dati, il primo segnalibro di questa stringa deve trovarsi nella posizione in cui verrà formattato il nome del parametro. Se ad esempio l'origine dati prevede che i parametri siano denominati e includano il prefisso : , il risultato sarà :{0} . Quando si esegue la formattazione del parametro con nome p1 , la stringa risultante è :p1 .Se l'origine dati prevede che i parametri presentino il prefisso @ , che tuttavia è già incluso nel nome, la stringa sarà {0} , mentre il risultato della formattazione di un parametro denominato @p1 sarà @p1 .Per le origini dati che non prevedono parametri denominati, bensì l'uso del carattere ? , la stringa di formato può essere specificata semplicemente come ? , in modo da ignorare il nome del parametro. |
ParameterMarkerPattern | string |
Un'espressione regolare che corrisponde al marcatore di parametro. Avrà un valore corrispondente per il nome del parametro, se disponibile. Se ad esempio i parametri denominati sono supportati con un carattere @ iniziale incluso nel nome del parametro, il risultato sarà (\@[A-Za-z0-9_$#]*) .Se tuttavia i parametri denominati sono supportati con : come carattere iniziale non incluso nel nome del parametro, il risultato sarà :([A-Za-z0-9_$#]\*) .Se l'origine dati non supporta i parametri denominati, il risultato sarà ? . |
ParameterNameMaxLength | int |
La lunghezza massima del nome del parametro in caratteri. In Visual Studio si presuppone che se i nomi di parametri sono supportati, il valore minimo per la lunghezza massima corrisponderà a 30 caratteri. Se l'origine dati non supporta i parametri denominati, la proprietà restituisce zero. |
ParameterNamePattern | string |
Un'espressione regolare che corrisponde ai nomi di parametro validi. Origini dati diverse hanno regole diverse sui caratteri che è possibile usare con i nomi di parametro. In Visual Studio si presuppone che, se sono supportati i nomi di parametro, i caratteri \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} rappresentano il set di caratteri minimo supportato valido per i nomi di parametro. |
QuotedIdentifierPattern | string |
Un'espressione regolare che corrisponde a un identificatore delimitato e dispone di un valore di corrispondenza dell'identificatore senza virgolette. Ad esempio, se nell'origine dati sono state usate le virgolette doppie per indicare gli identificatori delimitati, il risultato sarà: (([^\\"]\|\\"\\")*) . |
QuotedIdentifierCase | IdentifierCase | Indica se per gli identificatori delimitati viene eseguita la distinzione tra maiuscole e minuscole. |
StatementSeparatorPattern | string |
Un'espressione regolare che corrisponde al separatore di istruzione. |
StringLiteralPattern | string |
Un'espressione regolare che corrisponde a una stringa letterale e dispone di un valore di corrispondenza del valore letterale. Ad esempio, se nell'origine dati sono state usate le virgolette singole per identificare le stringhe, il risultato sarà: ('([^']\|'')*') ' |
SupportedJoinOperators | SupportedJoinOperators | Specifica i tipi di istruzioni join di SQL supportati dall'origine dati. |
DataTypes
La raccolta di schemi espone informazioni sui tipi di dati supportati dal database al quale il provider è attualmente connesso.
ColumnName | Tipo di dati | Descrizione |
---|---|---|
TypeName | string |
Il nome del tipo di dati specifico del provider. |
ProviderDbType | int |
Valore di tipo specifico del provider da usare quando si specifica un tipo di parametro. Ad esempio: SqlDbType.Money . |
ColumnSize | long |
Lunghezza di una colonna o di un parametro non numerico. Tale valore fa riferimento alla lunghezza massima o definita per questo tipo dal provider. Per i dati di tipo carattere, rappresenta la lunghezza massima o definita in unità, definita dall'origine dati. Per i tipi di dati data-ora, rappresenta la lunghezza della rappresentazione stringa (se si suppone la massima precisione consentita del componente in frazioni di secondo). Se il tipo di dati è numerico, si tratta del limite superiore rispetto alla precisione massima del tipo di dati. |
CreateFormat | string |
Stringa di formato che indica come aggiungere la colonna a un'istruzione di definizione dei dati, come CREATE TABLE. Ciascun elemento nella matrice CreateParameter deve essere rappresentato da un "marcatore di parametro" nella stringa di formato.Ad esempio, per il tipo di dati SQL DECIMAL sono necessarie una precisione e una scala. In questo caso, la stringa di formato sarà DECIMAL({0},{1}) . |
CreateParameters | string |
I parametri di creazione da specificare durante la creazione di una colonna di questo tipo di dati. Ciascun parametro di creazione viene elencato nella stringa, separato da una virgola nell'ordine in cui deve essere fornito. Ad esempio, per il tipo di dati SQL DECIMAL sono necessarie una precisione e una scala. In questo caso, i parametri di creazione devono contenere la stringa "precision, scale". In un comando di testo per creare una colonna DECIMAL con una precisione di 10 e una scala di 2, il valore della colonna CreateFormat può essere DECIMAL({0},{1}) e la specifica completa del tipo sarà DECIMAL(10,2) . |
DataType | string |
Nome del tipo .NET del tipo di dati. |
IsAutoincrementable | bool |
true - I valori di questo tipo di dati possono essere a incremento automatico.false - I valori di questo tipo di dati possono non essere a incremento automatico.Questa proprietà indica che anche se una colonna di questo tipo di dati può essere a incremento automatico, non significa che tutte le colonne di questo tipo lo siano. |
IsBestMatch | bool |
true - Il tipo di dati è la corrispondenza più appropriata tra tutti i tipi di dati nell'archivio dati e il tipo di dati .NET indicato dal valore nella colonna DataType .false - Il tipo di dati non è la corrispondenza migliore.Per ciascun set di righe in cui il valore della colonna DataType è identico, la colonna IsBestMatch viene impostata su true in una sola riga. |
IsCaseSensitive | bool |
true - Il tipo di dati è di tipo carattere e viene fatta distinzione tra maiuscole e minuscole.false - Il tipo di dati non è un tipo di carattere o non fa distinzione tra maiuscole e minuscole. |
IsFixedLength | bool |
true - Le colonne di questo tipo di dati create da DDL (Data Definition Language) sono di lunghezza fissa.false - Le colonne di questo tipo di dati create da DDL sono di lunghezza variabile.DBNull.Value - Non è noto se il provider eseguirà il mapping del campo con una colonna di lunghezza fissa o di lunghezza variabile. |
IsFixedPrecisionScale | bool |
true - Il tipo di dati dispone di una precisione e di una scala fisse.false - Il tipo di dati non dispone di una precisione fissa né di una scala. |
IsLong | bool |
true - Il tipo di dati contiene dati molto lunghi. La definizione dei dati molto lunghi è specifica del provider.false - Il tipo di dati non contiene dati molto lunghi. |
IsNullable | bool |
true - Il tipo di dati non ammette valori null.false - Il tipo di dati non ammette valori null.DBNull.Value - Non è noto se il tipo di dati ammette valori null. |
IsSearchable | bool |
true - Il tipo di dati può essere usato in una clausola WHERE con qualsiasi operatore, ad eccezione del predicato LIKE.false - Il tipo di dati non può essere usato in una clausola WHERE con qualsiasi operatore, ad eccezione del predicato LIKE. |
IsSearchableWithLike | bool |
true - Il tipo di dati può essere usato con il predicato LIKE.false - Il tipo di dati non può essere usato con il predicato LIKE. |
IsUnsigned | bool |
true - Il tipo di dati è senza segno.false - Il tipo di dati è con segno.DBNull.Value - Non applicabile al tipo di dati. |
MaximumScale | short |
Se l'indicatore di tipo è numerico, questo valore corrisponde al numero massimo di cifre consentito a destra del separatore decimale. In caso contrario, il valore è DBNull.Value . |
MinimumScale | short |
Se l'indicatore di tipo è numerico, questo valore corrisponde al numero minimo di cifre consentito a destra del separatore decimale. In caso contrario, il valore è DBNull.Value . |
IsConcurrencyType | bool |
true - Il tipo di dati viene aggiornato dal database ogni volta che la riga viene modificata e il valore della colonna è diverso da tutti i valori precedenti.false - Il tipo di dati non viene aggiornato dal database ogni volta che viene modificata la riga.DBNull.Value - Il database non supporta questo tipo di dati. |
IsLiteralSupported | bool |
true - Il tipo di dati può essere espresso come valore letterale.false - Il tipo di dati non può essere espresso come valore letterale. |
LiteralPrefix | string |
Il prefisso applicato a un dato valore letterale. |
LiteralSuffix | string |
Il suffisso applicato a un dato valore letterale. |
Restrizioni
La raccolta di schemi espone informazioni sulle restrizioni supportate dal provider attualmente connesso al database.
ColumnName | Tipo di dati | Descrizione |
---|---|---|
CollectionName | string |
Il nome della raccolta a cui sono applicate queste restrizioni. |
RestrictionName | string |
Il nome della restrizione nella raccolta. |
RestrictionDefault | string |
Ignorato. |
RestrictionNumber | int |
La posizione effettiva nelle restrizioni delle raccolte in cui rientra questa particolare restrizione. |
ReservedWords
La raccolta di schemi espone informazioni sulle parole riservate dal database a cui è il provider è attualmente connesso.
ColumnName | Tipo di dati | Descrizione |
---|---|---|
ReservedWord | string |
Parola riservata specifica del provider. |