Koleksi skema umum
Berlaku untuk: .NET Framework .NET .NET Standard
Koleksi skema umum adalah koleksi skema yang diimplementasikan oleh masing-masing penyedia terkelola .NET. Anda dapat mengkueri penyedia terkelola .NET untuk menentukan daftar koleksi skema yang didukung dengan memanggil GetSchema
metode tanpa argumen, atau dengan nama koleksi skema "MetaDataCollections". Metode ini akan mengembalikan DataTable dengan daftar koleksi skema yang didukung, jumlah batasan yang didukung masing-masing, dan jumlah bagian pengidentifikasi yang mereka gunakan. Koleksi ini menjelaskan seluruh kolom yang diperlukan. Penyedia bebas untuk menambahkan lebih banyak kolom jika mereka mau. Misalnya, Penyedia Data Microsoft SqlClient untuk SQL Server menambahkan ParameterName
ke kumpulan pembatasan.
Jika penyedia tidak bisa menentukan nilai kolom yang diperlukan, penyedia akan mengembalikan null.
Untuk informasi selengkapnya tentang menggunakan GetSchema
metode , lihat Koleksi GetSchema dan Skema.
MetaDataCollections
Koleksi ini memaparkan informasi tentang semua koleksi skema yang didukung oleh penyedia yang saat ini digunakan untuk menyambungkan ke database.
ColumnName | DataType | Deskripsi |
---|---|---|
CollectionName | string |
Nama koleksi yang akan diteruskan ke GetSchema metode untuk mengembalikan koleksi. |
NumberOfRestrictions | int |
Jumlah batasan yang mungkin ditentukan untuk koleksi tersebut. |
NumberOfIdentifierParts | int |
Jumlah bagian pada nama objek pengenal/database komposit. Misalnya, di SQL Server, nilainya adalah 3 untuk tabel dan 4 untuk kolom. |
DataSourceInformation
Kumpulan skema ini memaparkan informasi tentang sumber data yang saat ini tersambung dengan Penyedia Data Microsoft SqlClient untuk SQL Server.
ColumnName | DataType | Deskripsi |
---|---|---|
CompositeIdentifierSeparatorPattern | string |
Ekspresi reguler agar sesuai dengan pemisah komposit pada pengenal komposit. Misalnya, \. (untuk SQL Server).Pengidentifikasi komposit biasanya digunakan untuk nama objek database, misalnya: pubs.dbo.authors atau pubs@dbo.authors .Untuk SQL Server, gunakan ekspresi \. reguler . |
DataSourceProductName | string |
Nama produk yang diakses oleh penyedia, seperti "SQLServer". |
DataSourceProductVersion | string |
Menunjukkan versi produk yang diakses oleh penyedia, pada format asli sumber data dan bukan dalam format Microsoft. Dalam beberapa kasus, DataSourceProductVersion dan DataSourceProductVersionNormalized akan menjadi nilai yang sama. |
DataSourceProductVersionNormalized | string |
Versi yang dinormalisasi untuk sumber data, sehingga bisa dibandingkan dengan String.Compare() . Format ini konsisten untuk semua versi penyedia untuk mencegah versi 10 mengurutkan antara versi 1 dan versi 2.Misalnya, SQL Server menggunakan format Microsoft nn.nn.nnnn yang khas.Dalam beberapa kasus, DataSourceProductVersion dan DataSourceProductVersionNormalized akan menjadi nilai yang sama. |
GroupByBehavior | GroupByBehavior | Menentukan hubungan antara kolom di dalam klausa GROUP BY dan kolom non-agregat dalam daftar pilih. |
IdentifierPattern | string |
Ekspresi reguler yang cocok dengan pengidentifikasi serta memiliki nilai kecocokan pengenal. Contohnya,[A-Za-z0-9_#$] . |
IdentifierCase | IdentifierCase | Menunjukkan apakah pengidentifikasi yang tidak dikutip dianggap sebagai peka huruf besar/kecil atau tidak. |
OrderByColumnsInSelect | bool |
Menentukan apakah kolom dalam klausa ORDER BY harus ada di dalam daftar pilih. Nilai true menunjukkan bahwa nilai tersebut harus berada dalam daftar pilih. Nilai false menunjukkan bahwa nilai tersebut tidak diharuskan berada dalam daftar pilih. |
ParameterMarkerFormat | string |
String format yang mewakili cara memformat parameter. Jika parameter bernama didukung oleh sumber data, tempat penampung pertama dalam string ini harus ada di tempat di mana nama parameter diformat. Misalnya, jika sumber data mengharapkan parameter diberi nama dan diawali dengan : string ini adalah :{0} . Saat memformat parameter ini dengan nama p1 string yang dihasilkan adalah :p1 .Jika sumber data mengharapkan parameter diawali dengan @ , tetapi nama yang sudah menyertakannya, string ini adalah {0} , dan hasil pemformatan parameter bernama @p1 adalah @p1 .Untuk sumber data yang tidak mengharapkan parameter bernama dan mengharapkan penggunaan ? karakter, string format dapat ditentukan sebagai ? , yang akan mengabaikan nama parameter. |
ParameterMarkerPattern | string |
Ekspresi reguler yang cocok dengan penanda parameter. Ini akan memiliki nilai kecocokan nama parameter, jika ada. Misalnya, jika parameter bernama didukung dengan @ karakter prospek yang akan disertakan dalam nama parameter, pola ini adalah: (\@[A-Za-z0-9_$#]*) .Namun, jika parameter bernama didukung dengan : sebagai karakter prospek dan bukan bagian dari nama parameter, pola ini adalah: :([A-Za-z0-9_$#]\*) .Jika sumber data tidak mendukung parameter bernama, pola ini adalah ? . |
ParameterNameMaxLength | int |
Panjang karakter maksimum nama parameter. Visual Studio mengharapkan bahwa jika nama parameter didukung, nilai minimum untuk panjang maksimumnya adalah 30 karakter. Jika sumber data tidak mendukung parameter bernama, properti ini mengembalikan nol. |
ParameterNamePattern | string |
Ekspresi reguler yang cocok dengan nama parameter yang valid. Sumber data yang berbeda memiliki aturan yang berbeda tentang karakter yang dapat digunakan untuk nama parameter. Visual Studio mengharapkan bahwa jika nama parameter didukung, karakter \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} adalah kumpulan karakter minimum yang didukung yang valid untuk nama parameter. |
QuotedIdentifierPattern | string |
Ekspresi reguler yang cocok dengan pengidentifikasi yang dikutip dan memiliki nilai kecocokan dari pengidentifikasi itu sendiri tanpa tanda kutip. Misalnya, jika sumber data menggunakan tanda kutip ganda untuk mengidentifikasi pengidentifikasi yang dikutip, pola ini adalah: (([^\\"]\|\\"\\")*) . |
QuotedIdentifierCase | IdentifierCase | Menunjukkan apakah pengidentifikasi yang dikutip dianggap sebagai peka huruf besar/kecil atau tidak. |
StatementSeparatorPattern | string |
Ekspresi reguler yang cocok dengan pemisah pernyataan. |
StringLiteralPattern | string |
Ekspresi reguler yang cocok dengan string literal serta memiliki nilai kecocokan dari literal itu sendiri. Misalnya, jika sumber data menggunakan tanda kutip tunggal untuk mengidentifikasi string, pola ini adalah: ('([^']\|'')*') ' |
SupportedJoinOperators | SupportedJoinOperators | Menentukan jenis pernyataan gabungan SQL apa yang didukung oleh sumber data. |
DataTypes
Kumpulan skema ini memaparkan informasi tentang jenis data yang didukung oleh database yang saat ini tersambung dengan penyedia.
ColumnName | DataType | Deskripsi |
---|---|---|
TypeName | string |
Nama tipe data khusus penyedia. |
ProviderDbType | int |
Nilai tipe khusus penyedia yang harus digunakan ketika menentukan jenis parameter. Contohnya,SqlDbType.Money . |
ColumnSize | long |
Panjang kolom atau parameter non-numerik. Nilai ini mengacu pada maksimum atau panjang yang ditentukan untuk jenis ini oleh penyedia. Untuk data karakter, nilai ini adalah panjang maksimum atau yang ditentukan dalam unit, yang ditentukan oleh sumber data. Untuk jenis data tanggal-waktu, nilai ini adalah panjang representasi string (dengan asumsi presisi maksimum yang diizinkan dari komponen detik pecahan). Jika jenis data numerik, nilai ini adalah batas atas pada presisi maksimum jenis data. |
CreateFormat | string |
Memformat string yang mewakili cara menambahkan kolom ini ke dalam pernyataan definisi data, seperti CREATE TABLE. Setiap elemen dalam CreateParameter array harus diwakili oleh "penanda parameter" dalam string format.Contohnya, desimal tipe data SQL membutuhkan presisi dan skala. Dalam hal ini, string format adalah DECIMAL({0},{1}) . |
CreateParameters | string |
Parameter pembuatan yang harus ditentukan ketika membuat kolom tipe data ini. Setiap parameter pembuatan tercantum dalam string, dipisahkan oleh koma dalam urutan yang akan disediakan. Contohnya, desimal tipe data SQL membutuhkan presisi dan skala. Dalam hal ini, parameter pembuatan harus berisi string "presisi, skala". Dalam perintah teks untuk membuat kolom DECIMAL dengan presisi 10 dan skala 2, nilai kolom CreateFormat mungkin DECIMAL({0},{1}) dan spesifikasi jenis lengkapnya adalah DECIMAL(10,2) . |
DataType | string |
Nama jenis .NET dari jenis data. |
IsAutoincrementable | bool |
true - Nilai jenis data ini mungkin bertahakan otomatis.false - Nilai jenis data ini mungkin tidak bertahakan otomatis.Properti ini hanya menunjukkan apakah kolom tipe data ini mungkin bertahap otomatis, bukan berarti semua kolom jenis ini bertahap otomatis. |
IsBestMatch | bool |
true - Jenis data adalah kecocokan terbaik antara semua jenis data di penyimpanan data dan jenis data .NET yang ditunjukkan oleh nilai dalam DataType kolom.false - Jenis data bukan yang paling cocok.Untuk setiap set baris di mana nilai DataType kolom sama, IsBestMatch kolom diatur ke true hanya dalam satu baris. |
IsCaseSensitive | bool |
true - Jenis data adalah jenis karakter dan peka huruf besar/kecil.false - Jenis data bukan jenis karakter atau tidak peka huruf besar/kecil. |
IsFixedLength | bool |
true - Kolom jenis data ini yang dibuat oleh bahasa definisi data (DDL) akan memiliki panjang tetap.false - Kolom jenis data ini yang dibuat oleh DDL akan memiliki panjang variabel.DBNull.Value - Tidak diketahui apakah penyedia akan memetakan bidang ini dengan kolom panjang tetap atau panjang variabel. |
IsFixedPrecisionScale | bool |
true - Jenis data memiliki presisi dan skala tetap.false - Jenis data tidak memiliki presisi dan skala tetap. |
IsLong | bool |
true - Jenis data berisi data yang sangat panjang; definisi data yang sangat panjang khusus untuk penyedia.false - Jenis data tidak berisi data yang sangat panjang. |
IsNullable | bool |
true - Jenis data nullable.false - Jenis data tidak dapat diubah ke null.DBNull.Value - Tidak diketahui apakah jenis data dapat diubah ke null. |
IsSearchable | bool |
true - Jenis data dapat digunakan dalam klausul WHERE dengan operator apa pun kecuali predikat LIKE.false - Jenis data tidak dapat digunakan dalam klausa WHERE dengan operator apa pun kecuali predikat LIKE. |
IsSearchableWithLike | bool |
true - Jenis data dapat digunakan dengan predikat LIKE.false - Jenis data tidak dapat digunakan dengan predikat LIKE. |
IsUnsigned | bool |
true - Jenis data tidak ditandatangani.false - Jenis data ditandatangani.DBNull.Value - Tidak berlaku untuk jenis data. |
MaximumScale | short |
Jika indikator jenis adalah jenis numerik, nilai ini adalah jumlah maksimum digit yang diizinkan di sebelah kanan titik desimal. Jika tidak, nilai ini adalah DBNull.Value . |
MinimumScale | short |
Jika indikator jenis adalah jenis numerik, nilai ini adalah jumlah minimum digit yang diizinkan di sebelah kanan titik desimal. Jika tidak, nilai ini adalah DBNull.Value . |
IsConcurrencyType | bool |
true – Jenis data diperbarui oleh database setiap kali baris diubah dan nilai kolom berbeda dari semua nilai sebelumnya.false – Jenis data dicatat diperbarui oleh database setiap kali baris diubah.DBNull.Value – Database tidak mendukung jenis data ini. |
IsLiteralSupported | bool |
true – Jenis data dapat dinyatakan sebagai harfiah.false – Jenis data tidak dapat diekspresikan sebagai harfiah. |
LiteralPrefix | string |
Awalan diterapkan ke literal tertentu. |
LiteralSuffix | string |
Akhiran diterapkan pada literal tertentu. |
Batasan
Kumpulan skema ini mengekspos informasi tentang pembatasan yang didukung oleh penyedia yang saat ini digunakan untuk menyambungkan ke database.
ColumnName | DataType | Deskripsi |
---|---|---|
CollectionName | string |
Nama koleksi yang diterapkan pembatasan ini. |
RestrictionName | string |
Nama pembatasan dalam koleksi ini. |
RestrictionDefault | string |
Diabaikan. |
RestrictionNumber | int |
Lokasi sebenarnya pada batasan koleksi tempat pembatasan khusus ini jatuh. |
ReservedWords
Kumpulan skema ini memaparkan informasi tentang kata-kata yang dicadangkan oleh database yang saat ini tersambung dengan penyedia.
ColumnName | DataType | Deskripsi |
---|---|---|
ReservedWord | string |
Kata khusus penyedia khusus. |