Общие коллекции схем

Область применения: .NET Framework .NET .NET Standard

Скачать ADO.NET

Общие коллекции схем — это коллекции схем, реализуемые каждым из управляемых поставщиков данных .NET. Можно запросить у управляемого поставщика .NET список поддерживаемых коллекций схем, вызвав метод GetSchema без аргументов или указав имя коллекции схемы "MetaDataCollections". Этот метод возвращает объект DataTable со списком поддерживаемых коллекций схем, количеством поддерживаемых ограничений и количеством используемых частей идентификатора. Данные коллекции описывают все требуемые столбцы. Поставщики могут свободно добавлять дополнительные столбцы, если это необходимо. Например, поставщик данных Microsoft SqlClient для SQL Server добавляет ParameterName в коллекцию ограничений.

Если поставщик не может определить значение требуемого столбца, то он возвращает значение NULL.

Дополнительные сведения об использовании методов GetSchema см. в статье Метод GetSchema и коллекции схем.

MetaDataCollections

Эта коллекция содержит сведения обо всех коллекциях схем, поддерживаемых поставщиком, используемым в данный момент для подключения к базе данных.

Название столбца Тип данных Описание
CollectionName string Имя коллекции, передаваемое методу GetSchema для возврата коллекции.
Количество ограничений int Число ограничений, которые могут быть указаны для коллекции.
Количество частей идентификатора int Число частей в составном имени идентификатора и (или) объекта базы данных. Например, в SQL Server значение будет равно 3 для таблиц и 4 для столбцов.

Коллекция схем DataSourceInformation

Эта коллекция схем предоставляет сведения об источнике данных, к которому подключен поставщик данных Microsoft SqlClient для SQL Server.

Название столбца Тип данных Описание
Шаблон разделителя составного идентификатора string Регулярное выражение служит для согласования составных разделителей в составном идентификаторе. Например, \. (для SQL Server).

Обычно составные идентификаторы используются в качестве имени объекта базы данных, например pubs.dbo.authors или pubs@dbo.authors.

Для SQL Server следует использовать регулярное выражение \..
DataSourceProductName string Имя продукта, к которому обращается поставщик, например "SQLServer".
DataSourceProductVersion string Версия продукта, доступ к которому обеспечивается поставщиком, в собственном формате источников данных, а не в формате Microsoft.

В некоторых случаях DataSourceProductVersion и DataSourceProductVersionNormalized будут иметь одно и то же значение.
DataSourceProductVersionNormalized string Нормализованная версия для источника данных, позволяющая провести ее сравнение с помощью функции String.Compare(). Этот формат одинаков для всех версий провайдера, чтобы версия 10 не сортировалась между версиями 1 и 2.

Например, для SQL Server используется обычный формат Майкрософт: nn.nn.nnnn.

В некоторых случаях DataSourceProductVersion и DataSourceProductVersionNormalized будут иметь одно и то же значение.
GroupByBehavior GroupByBehavior Задает связь между столбцами в предложении GROUP BY и неагрегатными столбцами в списке выбора.
Шаблон идентификатора string Регулярное выражение, которое согласуется с идентификатором или имеет совпадающее с ним значение. Например, [A-Za-z0-9_#$].
IdentifierCase IdentifierCase Определяет, обрабатываются ли идентификаторы, не заключенные в кавычки, с учетом регистра.
OrderByColumnsInSelect bool Указывает, должны ли столбцы в предложении ORDER BY быть в списке выбора. Значение true указывает, что они должны находиться в списке выбора. Значение false указывает, что они не должны находиться в списке выбора.
ParameterMarkerFormat string Строка форматирования, представляющая способ форматирования параметра.

Если именованные параметры поддерживаются источником данных, первый местозаполнитель в этой строке должен находиться в позиции форматирования имени параметра.

Например, если источник данных ожидает получение параметров с именем и префиксом :, эта строка будет :{0}. При форматировании этого параметра с именем p1 результирующей строкой будет :p1.

Если источник данных ожидает получения параметров с префиксом @, а имена уже содержат этот префикс, строка будет {0}, а результатом форматирования параметра с именем @p1 будет @p1.

Для источников данных, в которых вместо именованных параметров ожидается использование символа ?, строка форматирования может указываться в виде ?, что приводит к пропуску имени параметра.
Шаблон маркера параметра string Регулярное выражение, соответствующее маркеру параметра. Оно будет иметь значение, совпадающее с именем параметра (если таковое имеется).

Например, если поддерживаются именованные параметры с начальным символом @, включаемым в имя параметра, выражение будет иметь вид (\@[A-Za-z0-9_$#]*).

Но, если поддерживаются именованные параметры с начальным символом :, не являющимся частью имени параметра, выражение будет иметь вид :([A-Za-z0-9_$#]\*).

Если источник данных не поддерживает именованные параметры, выражение будет иметь вид ?.
ParameterNameMaxLength int Максимальная длина имени параметра в символах. В среде Visual Studio принято предположение, что в случае поддержки имен параметров минимальным значением максимальной длины будет 30 символов.

Если источник данных не поддерживает именованные параметры, это свойство вернет ноль.
ParameterNamePattern string Регулярное выражение, соответствующее действительным именам параметров. Разные источники данных имеют разные правила использования символов для имен параметров.

Visual Studio ожидает, что, если имена параметров поддерживаются, символы \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} будут минимальным поддерживаемым набором символов, допустимым для имен параметров.
QuotedIdentifierPattern string Регулярное выражение, которое соответствует идентификатору, заключённому в кавычки, и у которого значением совпадения является сам идентификатор без кавычек. Например, если в источнике данных для обозначения идентификаторов в кавычках используются двойные кавычки, этот шаблон будет выглядеть так: (([^\\"]\|\\"\\")*).
QuotedIdentifierCase IdentifierCase Определяет, считаются ли заключенные в кавычки идентификаторы чувствительными к регистру.
Шаблон разделителя операторов string Регулярное выражение, соответствующее разделителю инструкций.
StringLiteralPattern string Регулярное выражение, которое соответствует строковому литералу и имеет значение совпадения, равное самому литералу. Например, если в источнике данных используются одинарные кавычки для определения строк, выражение будет иметь вид ('([^']\|'')*').
Поддерживаемые операторы объединения SupportedJoinOperators Указывает, какие типы инструкций соединения SQL поддерживаются источником данных.

Типы данных

Эта коллекция схем предоставляет сведения о типах данных, поддерживаемых базой данных, к которой в данный момент подключен поставщик.

Название столбца Тип данных Описание
TypeName string Имя типа данных для конкретного поставщика.
ProviderDbType int Зависящее от поставщика значение типа, которое следует использовать при указании типа параметра. Например, SqlDbType.Money.
Размер столбца long Длина нечислового столбца или параметра. Это значение обозначает либо максимальное значение, либо длину, заданные поставщиком для этого типа.

Для символьных данных это значение представляет собой максимальное значение или длину в единицах, как определено источником данных.

Для типов данных, определяющих дату и время, это значение является длиной представления строки (с учетом максимально допустимой точности доли секунды).

Для числового типа данных это значение является верхней границей максимальной точности типа данных.
Создать формат string Форматируйте строку, представляющую, как добавить этот столбец в инструкцию определения данных, например CREATE TABLE. Каждый элемент в массиве CreateParameter должен быть представлен в строке форматирования меткой параметра.

Например, тип данных DECIMAL в SQL требует указания точности и масштаба. В этом случае строка форматирования будет иметь вид DECIMAL({0},{1}).
CreateParameters string Параметры создания, которые необходимо указать при создании столбца данных этого типа. Каждый параметр создания указывается в строке, разделенной запятыми в том порядке, в котором они должны быть предоставлены.

Например, тип данных DECIMAL в SQL требует указания точности и масштаба. В этом случае параметры создания должны содержать строку «точность, масштаб».

В тексте команды для создания столбца DECIMAL с точностью 10 и масштабом 2 значение столбца CreateFormat может быть равно DECIMAL({0},{1}), а полная спецификация типа будет иметь вид DECIMAL(10,2).
Тип данных string Имя типа .NET для типа данных.
IsAutoincrementable bool true — значения этого типа данных могут увеличиваться автоматически.

false — значения этого типа данных могут не увеличиваться автоматически.

Это свойство просто указывает, может ли столбец этого типа данных увеличиваться автоматически, а не то, что все столбцы этого типа автоматически увеличиваются.
IsBestMatch bool true — тип данных является наиболее точным соответствием между всеми типами данных в хранилище данных и типом данных .NET, указанным значением в столбце DataType.

false — тип данных не является наиболее точным соответствием.

Для каждого набора строк, в которых значение столбца DataType является идентичным, для столбца IsBestMatch задается значение true только в одной строке.
IsCaseSensitive bool true — тип данных является символьным типом, для которого учитывается регистр.

false — тип данных не является символьным типом или не чувствителен к регистру.
IsFixedLength bool true — столбцы этого типа данных, созданные с помощью языка DDL, будут иметь фиксированную длину.

false — столбцы этого типа данных, созданные с помощью языка DDL, будут иметь переменную длину.

DBNull.Value — неизвестно, будет ли поставщик сопоставлять это поле со столбцом с фиксированной или переменной длиной.
IsFixedPrecisionScale bool true — тип данных имеет фиксированные точность и масштаб.

false — тип данных не имеет фиксированных точности и масштаба.
IsLong bool true — тип данных содержит очень длинные данные; определение очень длинных данных зависит от поставщика.

false — тип данных не содержит слишком длинных данных.
IsNullable bool true — тип данных допускает значение NULL.

false — тип данных не допускает значения NULL.

DBNull.Value — неизвестно, допускает ли тип данных значение NULL.
IsSearchable bool true — тип данных можно использовать в предложении WHERE с любым оператором, кроме предиката LIKE.

false — тип данных нельзя использовать в предложении WHERE с любым оператором, кроме предиката LIKE.
IsSearchableWithLike bool true — тип данных можно использовать с предикатом LIKE.

false — тип данных нельзя использовать с предикатом LIKE.
IsUnsigned bool true — тип данных не подписан.

false — тип данных подписан.

DBNull.Value — неприменимо к типу данных.
MaximumScale short Если индикатор типа является числовым типом, это значение представляет собой максимальное количество цифр, разрешенное справа от десятичной точки. В противном случае это значение равно DBNull.Value.
Минимальный масштаб short Если индикатор типа является числовым типом, это значение представляет собой минимальное количество цифр, разрешенное справа от десятичной точки. В противном случае это значение равно DBNull.Value.
IsConcurrencyType bool true — тип данных обновляется базой данных каждый раз при изменении строки, а значение столбца отличается от всех предыдущих значений.

false — тип данных обновляется базой данных каждый раз при изменении строки.

DBNull.Value — база данных не поддерживает этот тип данных.
IsLiteralSupported bool true — тип данных может быть выражен в виде литерала.

false — тип данных не может быть выражен в виде литерала.
LiteralPrefix string Префикс, применяемый к заданному литералу.
LiteralSuffix string К заданному литералу применяется суффикс.

Ограничения

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

Название столбца Тип данных Описание
CollectionName string Имя коллекции, к которой применяются эти ограничения.
RestrictionName string Имя ограничения в коллекции.
RestrictionDefault string Игнорируется.
Номер ограничения int Фактическое расположение в коллекциях тех ограничений, к которым относится данное конкретное ограничение.

Зарезервированные слова

Эта коллекция схем предоставляет сведения о словах, зарезервированных базой данных, к которой сейчас подключен поставщик.

Название столбца Тип данных Описание
ReservedWord string Зарезервированное слово, определяемое поставщиком.