SQLite için bir .NET / C # sarıcı var mı? [kapalı]


267

C # .Net içinden SQLite kullanmak istiyorum, ama uygun bir kütüphane bulamıyorum. Bir tane var mı? Resmi bir tane mi? SQLite kullanmanın bir sarıcıdan başka yolları var mı?


4
Bu sorunun bir kopyası: stackoverflow.com/questions/26020/… ve farklı bir cevabı var.
Stewart Johnson

2
Aslında, kabul edilen cevapların aynı projeyle bağlantılı olduğuna inanıyorum.
Colin

Yanıtlar:


328

Gönderen https://system.data.sqlite.org :

System.Data.SQLite, SQLite için bir ADO.NET bağdaştırıcısıdır.

System.Data.SQLite Robert Simpson tarafından başlatıldı. Robert bu depo için hala ayrıcalıklara sahiptir, ancak artık aktif bir katılımcı değildir. Geliştirme ve bakım çalışmaları çoğunlukla SQLite Geliştirme Ekibi tarafından yapılmaktadır. SQLite ekibi uzun vadede System.Data.SQLite'ı desteklemeye kararlıdır.

"System.Data.SQLite orijinal SQLite veritabanı motoru ve tek bir karma mod montajı içine yuvarlandı tam bir ADO.NET 2.0 sağlayıcısıdır. Orijinal sqlite3.dll için tam bir açılan yedek (hatta yeniden adlandırabilirsiniz) Normal karışık derlemelerin aksine, .NET çalışma zamanına bağımlı bir bağımlılığı yoktur, bu nedenle .NET'ten bağımsız olarak dağıtılabilir. "

Mono'yu bile destekler.


33
Bu eski bir soru ama 0.02 dolarımı eklemek zorunda kaldım. System.Data.SQLite kayalar. Süper rafine, istikrarlı ve ticari kalitede. Hepsinden iyisi,% 100 yönetilen koddur ve kamu malı kaynak kodu olarak yayınlanmıştır.
Nathan Ridley

4
Sadece tutarlılık için, çünkü insanlar her ikisi de farklı şeyler olarak konuşuyorlar. Sqlite.phxsoftware.com adresinde indirmek için sourceforge.net/projects/sqlite-dotnet2 adresine yönlendirilirsiniz.
yeyeyerman

16
Bu sarıcı artık orijinal yazarı tarafından geliştirilmiyor ve geliştirme SQLite'nin kendisi tarafından ele geçirilmiş gibi görünüyor. Yeni site system.data.sqlite.org adresindedir, ancak şu anda orijinaline kıyasla daha az kullanıcı dostu ve daha fazla yapım aşamasında görünüyor.
mikel

5
@NathanRidley -% 100 yönetildiğinden emin misin, çünkü bu cevap "System.Data.SQLite orijinal SQLite veritabanı motorudur ve eksiksiz bir ADO.NET 2.0 sağlayıcısı tek bir karma modda
toplanır

2
FYI, Microsoft'un Microsoft.Data.Sqlite .NET Standard Nuget paketini kullanmayı denedim, ancak AsyncPoco Github kütüphanesinde birkaç entegrasyon testinde başarısız oldu. System.Data.SQLite'a geçtikten sonra her şey mükemmel çalıştı.
Lee Grissom



15

Sqlite.org'dan insanlar ADO.NET sağlayıcısının gelişimini devraldı:

Gönderen kendi ana :

Bu, System.Data.SQLite olarak bilinen SQLite için popüler ADO.NET 4.0 adaptörünün bir çataldır. System.Data.SQLite'in yaratıcısı Robert Simpson, bu çatalın farkında, onayını ifade etti ve yeni Fosil deposunda imtiyazlara sahip. SQLite geliştirme ekibi, System.Data.SQLite'ın ilerlemesini sağlamayı amaçlamaktadır.

Nisan 2010'dan bu yana bu sürümde herhangi bir güncelleme yapılmamasına rağmen , geçmiş sürümler ve orijinal destek forumları http://sqlite.phxsoftware.com adresinde bulunabilir .

Özelliklerin tam listesini wiki adresinde bulabilirsiniz . Öne çıkan özellikler

  • ADO.NET 2.0 desteği
  • Tam Varlık Çerçevesi desteği
  • Tam Mono desteği
  • Visual Studio 2005/2008 Tasarım Zamanı desteği
  • Compact Framework, C / C ++ desteği

Yayımlanan DLL'ler doğrudan siteden indirilebilir .


hazır DLL'ler kullanıma hazır
zomf

8

Kesinlikle System.Data.SQLite ile giderdim (daha önce de belirtildiği gibi: http://sqlite.phxsoftware.com/ )

ADO.NET (System.Data. *) İle uyumludur ve tek bir DLL olarak derlenmiştir. Sqlite3.dll yok - SQLite C kodu System.Data.SQLite.dll içinde gömülü olduğundan. Biraz yönetilen C ++ büyüsü.


bağlantı şu anda 404
SqlACID

7

sqlite-net , .NET ve Mono uygulamalarının SQLite 3 veritabanlarında veri depolamasına izin veren açık kaynaklı, minimal bir kütüphanedir . Wiki sayfasında daha fazla bilgi .

C # ile yazılmıştır ve sadece projelerinizle derlenmelidir. İlk olarak iPhone'da MonoTouch ile çalışmak üzere tasarlandı, ancak tüm platformlarda (Android için Mono, .NET, Silverlight, WP7, WinRT, Azure vb.) Çalışmak için büyüdü.

Bir Nuget paketi olarak mevcuttur 2014 itibarıyla 60.000 'den fazla indirme ile 2 en popüler SQLite paketidir.

sqlite-net, hızlı ve kullanışlı bir veritabanı katmanı olarak tasarlanmıştır. Tasarımı şu hedeflerden kaynaklanmaktadır:

  • Mevcut projelere ve MonoTouch projelerine entegre edilmesi çok kolay.
  • SQLite üzerine ince sarıcı ve hızlı ve verimli olmalıdır. (Kütüphane, sorgularınızın performans darboğazı olmamalıdır.)
  • CRUD işlemlerini ve sorgularını güvenli bir şekilde yürütmek (parametreleri kullanarak) ve bu sorgunun sonuçlarını güçlü bir şekilde almak için çok basit yöntemler.
  • Sınıflarınızı değiştirmeye zorlamadan veri modelinizle çalışır. (Küçük bir yansıma odaklı ORM katmanı içerir.)
  • Sqlite2 kütüphanesinin derlenmiş bir formunun dışında 0 bağımlılık.

Hedef olmayanlar şunları içerir:

  • Bir ADO.NET uygulaması değil . Bu tam bir SQLite sürücüsü değil. Buna ihtiyacınız varsa System.Data.SQLite kullanın.

2014'ten önceki yorumların çoğunun Windows Store Uygulamama (işe yaramadı) yüklemeye çalıştığım System.Data.SQLite dediğini fark ettim. Sqlite-net işleri.
JeeShen Lee

2

Mono bir sargı ile birlikte gelir. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 , gerçek SQLite dll'sini ( http: //www.sqlite) sarmak için kod verir . org / sqlite-shell-win32-x86-3071300.zip , http://www.sqlite.org/download.html/ ) indirme sayfasında .net dostu bir şekilde bulundu. Linux veya Windows üzerinde çalışır.

Bu, üçüncü taraf kütüphanelerine olan bağımlılığınızı en aza indirerek tüm dünyaların en incisi gibi görünüyor. Bu projeyi sıfırdan yapmak zorunda kalsaydım, bunu yapmamın yolu buydu.



2

Benim gibi ADO.NET'e ihtiyaç duymayan veya istemeyen, SQLite'ye daha yakın kod çalıştırması gereken, ancak yine de netstandard(.net framework, .net core, vb.) İle uyumlu olanlar için , Github'da SQLNado adı verilen% 100 ücretsiz açık kaynak projesi ("ADO değil" için):

https://github.com/smourier/SQLNado

Burada bir külçe olarak kullanılabilir https://www.nuget.org/packages/SqlNado ancak tek bir .cs dosyası olarak da kullanılabilir, bu nedenle herhangi bir C # proje türünde kullanmak oldukça pratiktir.

SQL komutlarını kullanırken tüm SQLite özelliklerini destekler ve ayrıca .NET üzerinden SQLite özelliklerinin çoğunu destekler:

  • Otomatik sınıftan masaya eşleme (Kaydet, Sil, Yükle, LoadAll, LoadByPrimaryKey, LoadByForeignKey vb.)
  • Sınıflar ve var olan tablo arasında şemanın (tablolar, sütunlar) otomatik senkronizasyonu
  • İplik emniyetli operasyonlar için tasarlanmıştır
  • Nerede ve OrderBy LINQ / IQueryable .NET ifadeleri desteklenir (harmanlama desteği ile de bu alanda çalışmalar devam etmektedir)
  • .NET'e maruz kalan SQLite veritabanı şeması (tablolar, sütunlar vb.)
  • SQLite özel işlevleri .NET'te yazılabilir
  • SQLite artımlı BLOB G / Ç, yüksek bellek tüketimini önlemek için bir .NET Akışı olarak görünür
  • .NET kodu kullanarak özel harmanlama ekleme imkanı dahil SQLite harmanlama desteği
  • .NET kodu kullanarak özel FTS3 belirteçleri ekleme olanağı da dahil SQLite Tam Metin Arama motoru (FTS3) desteği (örneğin yerelleştirilmiş durdurma sözcükleri gibi). Başka hiçbir .NET sarmalayıcılar bunu inanmıyorum.
  • Herhangi bir ikili bağımlılık dosyasını göndermekten kaçınmak için Windows 'winsqlite3.dll' (yalnızca son Windows sürümlerinde) için otomatik destek . Bu Azure Web uygulamalarında da çalışır !.


0

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

SQLite için dotConnect, SQLite tabanlı veritabanı uygulamaları geliştirmek için eksiksiz bir çözüm sunmak amacıyla ADO.NET teknolojisini temel alan SQLite için geliştirilmiş bir veri sağlayıcısıdır. Devart veritabanı uygulama geliştirme çerçevesinin bir parçası olarak, SQLite için dotConnect, hem SQLite veritabanına yüksek performanslı yerel bağlantı hem de bir dizi yenilikçi geliştirme aracı ve teknolojisi sunar.

SQLite için dotConnect, uygulama mimarisini tasarlamak için yeni yaklaşımlar sunar, üretkenliği artırır ve veritabanı uygulaması uygulamasından yararlanır.

Standart sürümü kullanıyorum, mükemmel çalışıyor :)


0

Sqlite kütüphanesi tarafından sağlanan fonksiyonların bir barebone sarıcı. Son sürüm sqlite kütüphane 3.7.10 sağlanan fonksiyonları destekler

SQLiteWrapper projesi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.