Czy istnieje opakowanie .NET / C # dla SQLite? [Zamknięte]

267

Chciałbym użyć SQLite z poziomu C # .Net, ale nie mogę znaleźć odpowiedniej biblioteki. Czy jest jeden Oficjalny? Czy są inne sposoby korzystania z SQLite niż z opakowania?

ian93
źródło
4
To jest duplikat tego pytania: stackoverflow.com/questions/26020/... i ma inną odpowiedź.
Stewart Johnson
2
Właściwie uważam, że obie zaakceptowane odpowiedzi prowadzą do tego samego projektu.
Colin

Odpowiedzi:

328

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

System.Data.SQLite to adapter ADO.NET dla SQLite.

System.Data.SQLite został uruchomiony przez Roberta Simpsona. Robert nadal ma uprawnienia do zatwierdzania tego repozytorium, ale nie jest już aktywnym współtwórcą. Prace programistyczne i konserwacyjne są obecnie w większości wykonywane przez zespół programistów SQLite. Zespół SQLite jest zaangażowany w długoterminową obsługę System.Data.SQLite.

„System.Data.SQLite jest oryginalnym silnikiem bazy danych SQLite i kompletnym dostawcą ADO.NET 2.0 zintegrowanym w jednym zestawie trybu mieszanego. Jest to kompletny zamiennik oryginalnego pliku sqlite3.dll (możesz nawet zmienić jego nazwę na sqlite3.dll). W przeciwieństwie do normalnych zestawów mieszanych, nie ma zależności linkera od środowiska uruchomieniowego .NET, więc może być dystrybuowany niezależnie od .NET. ”

Obsługuje nawet Mono.

ine
źródło
33
To stare pytanie, ale musiałem dodać 0,02 $. System.Data.SQLite skały. Jest to bardzo wyrafinowana, stabilna i komercyjna jakość. Co najważniejsze, jest to w 100% zarządzany kod i został wydany jako kod źródłowy domeny publicznej.
Nathan Ridley
4
Tylko dla spójności, ponieważ ludzie mówią o obu rzeczach jako o różnych rzeczach. W sqlite.phxsoftware.com jesteś kierowany do sourceforge.net/projects/sqlite-dotnet2 do pobrania.
yeyeyerman,
16
To opakowanie nie jest już opracowywane przez jego oryginalnego autora, a rozwój wydaje się być przejęty przez sam SQLite. Nowa strona znajduje się pod adresem system.data.sqlite.org, choć w tej chwili wydaje się mniej przyjazna dla użytkownika i trwa w toku w porównaniu do oryginalnej.
mikel
5
@NathanRidley - Czy jesteś pewien, że jest w 100% zarządzany, ponieważ ta odpowiedź mówi: „System.Data.SQLite to oryginalny silnik bazy danych SQLite, a kompletny dostawca ADO.NET 2.0 jest
zintegrowany
2
Do Twojej wiadomości próbowałem użyć pakietu Microsoft.Data.Sqlite .NET Standard Nuget, ale nie udało się to podczas kilku testów integracji w bibliotece AsyncPoco Github. Po przejściu na System.Data.SQLite wszystko działało idealnie.
Lee Grissom,
15

Ludzie z sqlite.org przejęli rozwój dostawcy ADO.NET:

Z ich strony głównej :

To jest rozwidlenie popularnego adaptera ADO.NET 4.0 dla SQLite znanego jako System.Data.SQLite. Pomysłodawca System.Data.SQLite, Robert Simpson, jest świadomy tego rozwidlenia, wyraził swoją zgodę i ma uprawnienia do zatwierdzania nowego repozytorium Fossil. Zespół programistów SQLite zamierza kontynuować rozwój System.Data.SQLite.

Wersje historyczne, a także oryginalne fora wsparcia, można nadal znaleźć na stronie http://sqlite.phxsoftware.com , chociaż od kwietnia 2010 r. Nie było żadnych aktualizacji tej wersji.

Pełna lista funkcji znajduje się na ich wiki . Najważniejsze to

  • Obsługa ADO.NET 2.0
  • Pełna obsługa Entity Framework
  • Pełna obsługa mono
  • Obsługa Visual Studio 2005/2008 Design-Time
  • Compact Framework, obsługa C / C ++

Wydane biblioteki DLL można pobrać bezpośrednio ze strony .

David Schmitt
źródło
gotowe biblioteki DLL są teraz dostępne
zomf
8

Zdecydowanie wybrałbym System.Data.SQLite (jak wcześniej wspomniano: http://sqlite.phxsoftware.com/ )

Jest spójny z ADO.NET (System.Data. *) I jest skompilowany w pojedynczą bibliotekę DLL. Brak sqlite3.dll - ponieważ kod C SQLite jest osadzony w System.Data.SQLite.dll. Trochę zarządzanej magii C ++.

Tonyz
źródło
link jest obecnie 404
SqlACID
7

sqlite-net to otwarta biblioteka, minimalna biblioteka pozwalająca aplikacjom .NET i Mono na przechowywanie danych w bazach danych SQLite 3 . Więcej informacji na stronie wiki .

Jest napisany w C # i ma być po prostu kompilowany z twoimi projektami. Po raz pierwszy został zaprojektowany do współpracy z MonoTouch na iPhonie, ale dorósł do pracy na wszystkich platformach (Mono dla Androida, .NET, Silverlight, WP7, WinRT, Azure itp.).

Jest dostępny jako pakiet Nuget , gdzie jest drugim najpopularniejszym pakietem SQLite z ponad 60 000 pobrań od 2014 roku.

sqlite-net został zaprojektowany jako szybka i wygodna warstwa bazy danych. Jego konstrukcja wynika z następujących celów:

  • Bardzo łatwa do zintegrowania z istniejącymi projektami i projektami MonoTouch.
  • Cienkie opakowanie na SQLite i powinno być szybkie i wydajne. (Biblioteka nie powinna stanowić wąskiego gardła w wydajności zapytań).
  • Bardzo proste metody bezpiecznego wykonywania operacji CRUD i zapytań (przy użyciu parametrów) oraz uzyskiwania wyników tych zapytań w mocno typowy sposób.
  • Współpracuje z modelem danych bez zmuszania do zmiany klas. (Zawiera małą warstwę ORM opartą na odbiciu).
  • 0 zależności oprócz skompilowanej formy biblioteki sqlite2.

Do celów innych należą:

  • Nie implementacja ADO.NET. To nie jest pełny sterownik SQLite. Jeśli potrzebujesz, użyj System.Data.SQLite.
dodgy_coder
źródło
Zauważyłem, że większość komentarzy sprzed 2014 roku zawierała System.Data.SQLite, który próbowałem zainstalować w mojej aplikacji Windows Store (nie działał). Sqlite-net działa.
JeeShen Lee
2

Mono ma opakowanie. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 daje kod do zawijania faktycznej biblioteki DLL SQLite ( http: //www.sqlite. org / sqlite-shell-win32-x86-3071300.zip znaleziony na stronie pobierania http://www.sqlite.org/download.html/ ) w przyjazny dla środowiska .net. Działa w systemie Linux lub Windows.

To wydaje się najcieńsze ze wszystkich światów, minimalizując twoją zależność od bibliotek stron trzecich. Gdybym musiał wykonać ten projekt od zera, to właśnie tak bym to zrobił.

Ograniczone Zadośćuczynienie
źródło
2

Microsoft.Data.Sqlite

Microsoft zapewnia teraz Microsoft.Data.Sqlite jako własne rozwiązanie SQLite dla platformy .NET, które jest dostarczane jako część programu ASP.NET Core. Licencja jest licencją Apache, wersja 2.0 .

* Uwaga: Nie rzeczywiście spróbował wykorzystać ten sam jeszcze, ale jest jakaś dokumentacja Microsoft Docs tutaj do używania z .NET Core i UWP.

Christopher Kyle Horton
źródło
2

Dla takich jak ja, którzy nie potrzebują lub nie chcą ADO.NET, ci, którzy muszą uruchamiać kod bliżej SQLite, ale nadal kompatybilny z netstandard(.NET Framework, .net core itp.), Zbudowałem 100% darmowy projekt open source o nazwie SQLNado (dla „Not ADO”) dostępny na github tutaj:

https://github.com/smourier/SQLNado

Jest dostępny jako nuget tutaj https://www.nuget.org/packages/SqlNado, ale jest również dostępny jako pojedynczy plik .cs, więc jest całkiem praktyczny w użyciu w każdym typie projektu C #.

Obsługuje wszystkie funkcje SQLite podczas korzystania z poleceń SQL, a także obsługuje większość funkcji SQLite za pośrednictwem platformy .NET:

  • Automatyczne mapowanie klasy do tabeli (Zapisz, Usuń, Ładuj, LoadAll, LoadByPrimaryKey, LoadByForeignKey itp.)
  • Automatyczna synchronizacja schematu (tabel, kolumn) między klasami a istniejącą tabelą
  • Zaprojektowany do operacji z gwintem bezpiecznym
  • Gdzie i obsługiwane są wyrażenia LINQ / IQueryable .NET (prace w tym obszarze są nadal w toku), również z obsługą sortowania
  • Schemat bazy danych SQLite (tabele, kolumny itp.) Narażony na .NET
  • Niestandardowe funkcje SQLite można pisać w .NET
  • Przyrostowy BLOB I / O SQLite jest udostępniany jako strumień .NET, aby uniknąć dużego zużycia pamięci
  • Obsługa sortowania SQLite, w tym możliwość dodawania niestandardowych sortowań przy użyciu kodu .NET
  • Obsługa wyszukiwarki pełnotekstowej SQLite (FTS3), w tym możliwość dodawania niestandardowych tokenizatorów FTS3 przy użyciu kodu .NET (na przykład zlokalizowanych słów stop). Nie sądzę, aby robiło to inne opakowanie .NET.
  • Automatyczne wsparcie dla Windows „winsqlite3.dll” (tylko w najnowszych wersjach Windows), aby uniknąć wysyłania binarnych plików zależności . Działa to również w aplikacjach internetowych Azure!
Simon Mourier
źródło
0

Wersja 1.2 Monotouch zawiera obsługę System.Data. Więcej informacji można znaleźć tutaj: http://monotouch.net/Documentation/System.Data

Ale w zasadzie pozwala na użycie zwykłych wzorców ADO .NET z sqlite.

użytkownik203709
źródło
0

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

dotConnect dla SQLite to ulepszony dostawca danych dla SQLite, który wykorzystuje technologię ADO.NET, aby przedstawić kompletne rozwiązanie do tworzenia aplikacji bazodanowych opartych na SQLite. Jako część środowiska programowania aplikacji bazodanowych Devart, dotConnect for SQLite oferuje zarówno wysoką wydajność natywnej łączności z bazą danych SQLite, jak i szereg innowacyjnych narzędzi i technologii programistycznych.

dotConnect dla SQLite wprowadza nowe podejścia do projektowania architektury aplikacji, zwiększa produktywność i wspomaga implementację aplikacji bazodanowych.

Używam wersji standardowej, działa idealnie :)

Antonio
źródło
0

Ogołocone opakowanie funkcji dostarczone przez bibliotekę sqlite. Najnowsza wersja obsługuje funkcje udostępnionej biblioteki sqlite 3.7.10

Projekt SQLiteWrapper

Eminem
źródło