Apakah ada pembungkus .NET / C # untuk SQLite? [Tutup]


267

Saya semacam ingin menggunakan SQLite dari dalam C # .Net, tapi saya tidak bisa menemukan perpustakaan yang sesuai. Apakah ada satu? Yang resmi? Apakah ada cara lain untuk menggunakan SQLite daripada dengan pembungkus?


4
Ini adalah duplikat dari pertanyaan ini: stackoverflow.com/questions/26020/… dan memiliki jawaban yang berbeda.
Stewart Johnson

2
Sebenarnya, saya percaya bahwa kedua jawaban yang diterima terkait dengan proyek yang sama.
Colin

Jawaban:


328

Dari https://system.data.sqlite.org :

System.Data.SQLite adalah adaptor ADO.NET untuk SQLite.

System.Data.SQLite dimulai oleh Robert Simpson. Robert masih memiliki hak istimewa pada repositori ini tetapi tidak lagi menjadi kontributor aktif. Pekerjaan pengembangan dan pemeliharaan sekarang sebagian besar dilakukan oleh Tim Pengembangan SQLite. Tim SQLite berkomitmen untuk mendukung System.Data.SQLite jangka panjang.

"System.Data.SQLite adalah mesin basis data SQLite asli dan penyedia ADO.NET 2.0 lengkap semuanya digulung menjadi satu rakitan mode campuran. Ini adalah pengganti drop-in lengkap untuk sqlite3.dll asli (Anda bahkan dapat mengganti nama menjadi sqlite3.dll). Tidak seperti majelis campuran normal, ia tidak memiliki ketergantungan tautan pada runtime .NET sehingga dapat didistribusikan secara independen dari .NET. "

Bahkan mendukung Mono.


33
Ini adalah pertanyaan lama tetapi saya harus menambahkan $ 0,02. System.Data.SQLite batu. Ini kualitas kelas super halus, stabil dan komersial. Yang terbaik dari semuanya, ini adalah kode yang dikelola 100% dan telah dirilis sebagai kode sumber domain publik.
Nathan Ridley

4
Hanya untuk konsistensi, karena orang membicarakan keduanya sebagai hal yang berbeda. Di sqlite.phxsoftware.com Anda diarahkan ke sourceforge.net/projects/sqlite-dotnet2 untuk mengunduh.
yeyeyerman

16
Wrapper ini tidak lagi dikembangkan oleh penulis aslinya, dan pengembangan tampaknya telah diambil alih oleh SQLite sendiri. Situs baru ini ada di system.data.sqlite.org, meskipun saat ini tampaknya kurang user-friendly dan lebih banyak pekerjaan dalam proses dibandingkan dengan yang asli.
mikel

5
@NathanRidley - Apakah Anda yakin 100% berhasil, karena jawaban ini mengatakan "System.Data.SQLite adalah mesin database SQLite asli dan penyedia ADO.NET 2.0 lengkap semua digulung menjadi perakitan mode campuran tunggal."
logicnp

2
FYI, saya mencoba menggunakan Microsoft. Data. Paket Nuget .NET Standard Nuget, tetapi gagal pada beberapa tes integrasi di perpustakaan AsyncPoco Github. Setelah beralih ke System.Data.SQLite, semuanya bekerja dengan sempurna.
Lee Grissom



15

Orang-orang dari sqlite.org telah mengambil alih pengembangan penyedia ADO.NET:

Dari beranda mereka :

Ini adalah garpu dari adaptor ADO.NET 4.0 populer untuk SQLite yang dikenal sebagai System.Data.SQLite. Pencetus System.Data.SQLite, Robert Simpson, mengetahui garpu ini, telah menyatakan persetujuannya, dan telah melakukan hak istimewa pada repositori Fosil baru. Tim pengembangan SQLite bermaksud untuk mempertahankan System.Data.SQLite bergerak maju.

Versi historis, serta forum dukungan asli, masih dapat ditemukan di http://sqlite.phxsoftware.com , meskipun belum ada pembaruan untuk versi ini sejak April 2010.

Daftar lengkap fitur dapat ditemukan di wiki mereka . Sorotan termasuk

  • Dukungan ADO.NET 2.0
  • Dukungan Kerangka Entitas Lengkap
  • Dukungan penuh Mono
  • Visual Studio 2005/2008 Dukungan Desain-Waktu
  • Compact Framework, dukungan C / C ++

DLL yang dirilis dapat diunduh langsung dari situs .


DLL siap pakai sekarang tersedia
zomf

8

Saya pasti akan menggunakan System.Data.SQLite (seperti yang disebutkan sebelumnya: http://sqlite.phxsoftware.com/ )

Ini koheren dengan ADO.NET (System.Data. *), Dan dikompilasi menjadi satu DLL. Tidak sqlite3.dll - karena kode C dari SQLite tertanam dalam System.Data.SQLite.dll. Sedikit sihir C ++ terkelola.


tautan saat ini 404
SqlACID

7

sqlite-net adalah open source, perpustakaan minimal untuk memungkinkan aplikasi .NET dan Mono untuk menyimpan data dalam database SQLite 3 . Informasi lebih lanjut di halaman wiki .

Itu ditulis dalam C # dan dimaksudkan untuk hanya dikompilasi dengan proyek Anda. Ini pertama kali dirancang untuk bekerja dengan MonoTouch di iPhone, tetapi telah tumbuh untuk bekerja pada semua platform (Mono untuk Android, .NET, Silverlight, WP7, WinRT, Azure, dll.).

Ini tersedia sebagai paket Nuget , di mana itu adalah paket SQLite paling populer ke-2 dengan lebih dari 60.000 unduhan pada 2014.

sqlite-net dirancang sebagai lapisan basis data yang cepat dan nyaman. Desainnya mengikuti dari tujuan-tujuan ini:

  • Sangat mudah diintegrasikan dengan proyek yang ada dan dengan proyek MonoTouch.
  • Wrapper tipis di atas SQLite dan harus cepat dan efisien. (Perpustakaan tidak boleh menjadi penghambat kinerja kueri Anda.)
  • Metode yang sangat sederhana untuk menjalankan operasi dan kueri CRUD dengan aman (menggunakan parameter) dan untuk mengambil hasil kueri tersebut dengan cara yang sangat diketik.
  • Bekerja dengan model data Anda tanpa memaksa Anda untuk mengubah kelas Anda. (Berisi lapisan ORM kecil yang digerakkan oleh refleksi.)
  • 0 dependensi selain dari bentuk yang dikompilasi dari perpustakaan sqlite2.

Non-tujuan meliputi:

  • Bukan implementasi ADO.NET. Ini bukan driver SQLite lengkap. Jika Anda membutuhkannya, gunakan System.Data.SQLite.

Saya perhatikan bahwa sebagian besar komentar sebelum 2014 mengatakan System.Data.SQLite yang saya coba instal di Windows Store App saya (tidak berfungsi). Sqlite-net berfungsi.
JeeShen Lee

2

Mono hadir dengan pembungkus. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 memberikan kode untuk membungkus SQLite dll yang sebenarnya ( http: //www.sqlite. org / sqlite-shell-win32-x86-3071300.zip ditemukan di halaman unduhan http://www.sqlite.org/download.html/ ) dengan cara yang ramah .net. Ini bekerja di Linux atau Windows.

Ini tampaknya yang paling tipis dari semua dunia, meminimalkan ketergantungan Anda pada perpustakaan pihak ketiga. Jika saya harus melakukan proyek ini dari awal, ini adalah cara saya akan melakukannya.


2

Microsoft.Data.Sqlite

Microsoft sekarang menyediakan Microsoft.Data.Sqlite sebagai solusi SQLite pihak pertama untuk .NET, yang disediakan sebagai bagian dari ASP.NET Core. Lisensi tersebut adalah Lisensi Apache, Versi 2.0 .

* Penafian: Saya belum benar-benar mencoba menggunakan ini sendiri, tetapi ada beberapa dokumentasi yang disediakan di Microsoft Docs di sini untuk menggunakannya dengan .NET Core dan UWP.


2

Bagi mereka seperti saya yang tidak membutuhkan atau tidak ingin ADO.NET, mereka yang perlu menjalankan kode lebih dekat ke SQLite, tetapi masih kompatibel dengan netstandard(.net framework, .net core, dll.), Saya telah membangun 100% proyek open source gratis bernama SQLNado (untuk "Bukan ADO") tersedia di github di sini:

https://github.com/smourier/SQLNado

Ini tersedia sebagai nuget di sini https://www.nuget.org/packages/SqlNado tetapi juga tersedia sebagai file .cs tunggal, jadi cukup praktis untuk digunakan dalam semua jenis proyek C #.

Ini mendukung semua fitur SQLite saat menggunakan perintah SQL, dan juga mendukung sebagian besar fitur SQLite melalui .NET:

  • Pemetaan class-to-table otomatis (Simpan, Hapus, Muat, LoadAll, LoadByPrimaryKey, LoadByForeignKey, dll.)
  • Sinkronisasi otomatis skema (tabel, kolom) antara kelas dan tabel yang ada
  • Dirancang untuk operasi yang aman dari benang
  • Di mana dan OrderBy LINQ / IQueryable .NET ekspresi didukung (pekerjaan masih berlangsung di daerah ini), juga dengan dukungan pemeriksaan
  • Skema basis data SQLite (tabel, kolom, dll.) Terpapar .NET
  • Fungsi kustom SQLite dapat ditulis dalam .NET
  • SQLite incremental BLOB I / O terpapar sebagai .NET Stream untuk menghindari konsumsi memori yang tinggi
  • Dukungan pengumpulan SQLite, termasuk kemungkinan untuk menambahkan koleksi kustom menggunakan kode .NET
  • SQLite Full Text Search engine (FTS3) mendukung, termasuk kemungkinan untuk menambahkan tokenizers FTS3 khusus menggunakan kode .NET (seperti misalnya kata-kata berhenti yang dilokalkan). Saya tidak percaya ada pembungkus NET lainnya.
  • Dukungan otomatis untuk Windows 'winsqlite3.dll' (hanya pada versi Windows terbaru) untuk menghindari pengiriman file ketergantungan biner . Ini juga berfungsi di aplikasi Web Azure !.


0

http://www.devart.com/dotconnect/sqlite/

dotConnect untuk SQLite adalah penyedia data yang disempurnakan untuk SQLite yang dibangun berdasarkan teknologi ADO.NET untuk menghadirkan solusi lengkap untuk mengembangkan aplikasi basis data berbasis SQLite. Sebagai bagian dari kerangka pengembangan aplikasi database Devart, dotConnect untuk SQLite menawarkan konektivitas asli berkinerja tinggi ke database SQLite dan sejumlah alat dan teknologi pengembangan inovatif.

dotConnect untuk SQLite memperkenalkan pendekatan baru untuk merancang arsitektur aplikasi, meningkatkan produktivitas, dan memanfaatkan implementasi aplikasi database.

Saya menggunakan versi standar, ini berfungsi dengan sempurna :)


0

Pembungkus barebones dari fungsi-fungsi yang disediakan oleh pustaka sqlite. Versi terbaru mendukung fungsi yang disediakan pustaka sqlite 3.7.10

Proyek SQLiteWrapper

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.