String koneksi
String koneksi digunakan untuk menentukan cara menyambungkan ke database. String koneksi di Microsoft.Data.Sqlite mengikuti sintaks ADO.NET standar sebagai daftar kata kunci dan nilai yang dipisahkan titik koma.
Kata Kunci
Kata kunci string koneksi berikut dapat digunakan dengan Microsoft.Data.Sqlite:
Sumber data
Jalur ke file database. DataSource (tanpa spasi) dan Filename adalah alias dari kata kunci ini.
SQLite memperlakukan jalur relatif terhadap direktori kerja saat ini. Jalur absolut juga dapat ditentukan.
Jika kosong, SQLite membuat database sementara pada disk yang dihapus saat koneksi ditutup.
Jika :memory:
, database dalam memori digunakan. Untuk informasi selengkapnya, lihat Database Dalam Memori.
Jalur yang dimulai dengan string substitusi diperlakukan sama dengan |DataDirectory|
jalur relatif. Jika diatur, jalur dibuat relatif terhadap nilai properti domain aplikasi DataDirectory.
Kata kunci ini juga mendukung Nama File URI.
Mode
Mode koneksi.
Nilai | Deskripsi |
---|---|
ReadWriteCreate | Membuka database untuk membaca dan menulis, dan membuatnya jika tidak ada. Ini adalah default. |
ReadWrite | Membuka database untuk membaca dan menulis. |
Baca Saja | Membuka database dalam mode baca-saja. |
Memori | Membuka database dalam memori. |
Cache
Mode penembolokan yang digunakan oleh koneksi.
Nilai | Deskripsi |
---|---|
Default | Menggunakan mode default pustaka SQLite dasar. Ini adalah default. |
Privat | Setiap koneksi menggunakan cache privat. |
Bersama | Koneksi berbagi cache. Mode ini dapat mengubah perilaku transaksi dan penguncian tabel. |
Kata sandi
Kunci enkripsi kunci. Ketika ditentukan, PRAGMA key
dikirim segera setelah membuka koneksi.
Peringatan
Kata sandi tidak berpengaruh saat enkripsi tidak didukung oleh pustaka SQLite asli.
Catatan
Kata kunci Kata Sandi ditambahkan dalam versi 3.0.
Kunci Asing
Nilai yang menunjukkan apakah akan mengaktifkan batasan kunci asing.
Catatan
Kata kunci untuk Kunci Asing ditambahkan dalam versi 3.0.
Nilai | Deskripsi |
---|---|
Benar | Mengirim PRAGMA foreign_keys = 1 segera setelah membuka koneksi. |
Salah | Mengirim PRAGMA foreign_keys = 0 segera setelah membuka koneksi. |
(kosong) | Tidak mengirim PRAGMA foreign_keys . Ini adalah default. |
Tidak perlu mengaktifkan kunci asing jika, seperti di e_sqlite3, SQLITE_DEFAULT_FOREIGN_KEYS
digunakan untuk mengkompilasi pustaka SQLite asli.
Pemicu Berulang
Nilai yang menunjukkan apakah akan mengaktifkan pemicu berulang.
Catatan
Kata kunci Pemicu Berulang ditambahkan dalam versi 3.0.
Nilai | Deskripsi |
---|---|
Benar | Mengirim PRAGMA recursive_triggers segera setelah membuka koneksi. |
Salah | Tidak mengirim PRAGMA recursive_triggers . Ini adalah default. |
Waktu Habis Default
Batas waktu default (dalam detik) untuk menjalankan perintah. Nilai default adalah 30. Batas Waktu Perintah adalah alias dari kata kunci ini.
Nilai ini dapat ditimpa menggunakan DefaultTimeout yang pada gilirannya dapat ditimpa menggunakan CommandTimeout.
Catatan
Kata kunci Batas Waktu Default ditambahkan di versi 6.0.
Penggabungan
Nilai yang menunjukkan apakah koneksi akan digabungkan.
Catatan
Kata kunci Penggabungan ditambahkan dalam versi 6.0.
Nilai | Deskripsi |
---|---|
Benar | Koneksi akan digabungkan. Ini adalah default. |
Salah | Koneksi tidak akan digabungkan. |
Vfs
Nilai yang menunjukkan implementasi mana dari sistem file virtual (VFS) yang akan digunakan. Platform akan menggunakan VFS bawaan ketika kosong atau tidak ditentukan.
Catatan
Kata kunci Vfs ditambahkan dalam versi 10.0.
Penyusun string koneksi
Anda dapat menggunakan SqliteConnectionStringBuilder sebagai cara berjenis kuat untuk membuat string koneksi. Ini juga dapat digunakan untuk mencegah serangan injeksi string koneksi.
var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
Mode = SqliteOpenMode.ReadWriteCreate,
Password = password
}.ToString();
Contoh
Dasar
String koneksi dasar dengan cache bersama untuk konkurensi yang ditingkatkan.
Perhatian
Mencampur mode cache bersama dan pengelogan write-ahead tidak disarankan. Untuk performa optimal, hapus Cache=Shared
saat database dikonfigurasi untuk menggunakan pengelogan write-ahead.
Data Source=Application.db;Cache=Shared
Dienkripsi
Database terenkripsi.
Data Source=Encrypted.db;Password=MyEncryptionKey
Baca-saja
Database baca-saja yang tidak dapat dimodifikasi oleh aplikasi.
Data Source=Reference.db;Mode=ReadOnly
Dalam memori
Database privat dalam memori.
Data Source=:memory:
Dapat dibagikan dalam memori
Database dalam memori yang dapat dibagikan yang diidentifikasi dengan nama Sharable.
Data Source=Sharable;Mode=Memory;Cache=Shared