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?
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. "
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.
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 .
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.
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.
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.
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.
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:
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:
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 !.
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 :)
Jawaban:
Dari https://system.data.sqlite.org :
"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.
sumber
Inilah yang dapat saya temukan:
Sumber:
sumber
Sekarang juga ada opsi ini: http://code.google.com/p/csharp-sqlite/ - port lengkap SQLite ke C #.
sumber
Orang-orang dari sqlite.org telah mengambil alih pengembangan penyedia ADO.NET:
Dari beranda mereka :
Daftar lengkap fitur dapat ditemukan di wiki mereka . Sorotan termasuk
DLL yang dirilis dapat diunduh langsung dari situs .
sumber
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.
sumber
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:
Non-tujuan meliputi:
sumber
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.
sumber
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.
sumber
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:
sumber
Versi 1.2 dari Monotouch termasuk dukungan untuk System.Data. Anda dapat menemukan detail lebih lanjut di sini: http://monotouch.net/Documentation/System.Data
Tetapi pada dasarnya ini memungkinkan Anda untuk menggunakan pola ADO .NET biasa dengan sqlite.
sumber
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 :)
sumber
Pembungkus barebones dari fungsi-fungsi yang disediakan oleh pustaka sqlite. Versi terbaru mendukung fungsi yang disediakan pustaka sqlite 3.7.10
Proyek SQLiteWrapper
sumber