Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Microsoft.Data.Sqlite a SQLitePCLRaw-re épül. A natív SQLite-kódtár egyéni verzióit használhatja egy csomag használatával vagy egy SQLitePCLRaw szolgáltató konfigurálásával.
Csomagok
SQLitePCLRaw kényelmes csomagcsomagokat biztosít, amelyek megkönnyítik a megfelelő függőségek különböző platformokon való használatát. Az alap Microsoft.Data.Sqlite csomag alapértelmezés szerint magában foglalja a SQLitePCLRaw.bundle_e_sqlite3-t. Másik csomag használatához telepítse inkább a Microsoft.Data.Sqlite.Core csomagot a használni kívánt csomaggal együtt. A csomagokat a Microsoft.Data.Sqlite automatikusan inicializálja.
| Csomag | Leírás |
|---|---|
| SQLitePCLRaw.bundle_e_sqlite3 | Az SQLite konzisztens verzióját biztosítja minden platformon. Tartalmazza az FTS4, FTS5, JSON1 és R*Tree bővítményeket. Ez az alapértelmezett beállítás. |
| SQLitePCLRaw.bundle_e_sqlcipher | A nem hivatalos, nyílt forráskódú buildet biztosítja. SQLCipher |
| SQLitePCLRaw.bundle_green | Ugyanaz, mint bundle_e_sqlite3, kivéve iOS-en, ahol a rendszer SQLite könyvtárát használja. |
| SQLitePCLRaw.bundle_sqlite3 | A rendszer SQLite-kódtárát használja. |
| SQLitePCLRaw.bundle_winsqlite3 | A Windows 10 rendszer SQLite könyvtárát használja winsqlite3.dll. |
| SQLitePCLRaw.bundle_zetetic | A Zetetic hivatalos SQLCipher buildeit használja (nem tartalmazza). |
Ha például a nem hivatalos, nyílt forráskódú buildet SQLCipher szeretné használni, használja az alábbi parancsokat.
dotnet add package Microsoft.Data.Sqlite.Core
dotnet add package SQLitePCLRaw.bundle_e_sqlcipher
Elérhető SQLitePCLRaw-szolgáltatók
Ha nem kötegre támaszkodik, használhatja az SQLite elérhető szolgáltatóit az alapkomponenssel.
| Szolgáltató | Leírás |
|---|---|
| SQLitePCLRaw.provider.dynamic | A dynamic szolgáltató attribútumok használata helyett a natív kódtárat tölti be. További információért erről a szolgáltatóról, lásd: a dinamikus szolgáltató használata. |
| SQLitePCLRaw.provider.e_sqlite3 | Ez e_sqlite3 az alapértelmezett szolgáltató. |
| SQLitePCLRaw.provider.e_sqlcipher | A e_sqlcipher szolgáltató a nem hivatalos és nem támogatott SQLCipher. |
| SQLitePCLRaw.provider.sqlite3 | A sqlite3 szolgáltató egy rendszer által biztosított SQLite iOS, macOS és Linux rendszerhez. |
| SQLitePCLRaw.provider.sqlcipher | A sqlcipher szolgáltató a SQLCipher hivatalos Zetetic verzióihoz tartozik. |
| SQLitePCLRaw.provider.winsqlite3 | A winsqlite3 szolgáltató Windows 10-környezetekhez készült. |
A sqlite3 szolgáltató használatához használja a következő parancsokat:
dotnet add package Microsoft.Data.Sqlite.Core
dotnet add package SQLitePCLRaw.core
dotnet add package SQLitePCLRaw.provider.sqlite3
A csomagok telepítése után állítsa be a szolgáltatót a sqlite3 példányra.
using Microsoft.Data.Sqlite;
using System;
namespace SqliteProviderSample
{
class Program
{
static void Main()
{
SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_sqlite3());
using var connection = new SqliteConnection();
Console.WriteLine($"System SQLite version: {connection.ServerVersion}");
}
}
}
A dinamikus szolgáltató használata
A SQLitePCLRaw.provider.dynamic_cdecl csomag használatával saját SQLite verzióját használhatja. Ebben az esetben Ön a felelős a natív kódtár alkalmazással való üzembe helyezéséért. Vegye figyelembe, hogy a natív kódtárak alkalmazással való üzembe helyezésének részletei jelentősen eltérnek attól függően, hogy melyik .NET-platformot és futtatókörnyezetet használja.
Először is implementálnia IGetFunctionPointerkell. A .NET Core implementációja a következő:
class NativeLibraryAdapter : IGetFunctionPointer
{
readonly IntPtr _library;
public NativeLibraryAdapter(string name)
=> _library = SQLitePCL.NativeLibrary.Load(name);
public IntPtr GetFunctionPointer(string name)
=> SQLitePCL.NativeLibrary.TryGetExport(_library, name, out var address)
? address
: IntPtr.Zero;
}
Ezután konfigurálja a szolgáltatót SQLitePCLRaw . Győződjön meg arról, hogy a Microsoft.Data.Sqlite használata előtt ez megtörténik az alkalmazásában. Emellett ne használjon olyan csomagcsomagot SQLitePCLRaw , amely felülírhatja a szolgáltatót.
SQLite3Provider_dynamic_cdecl
.Setup("sqlite3", new NativeLibraryAdapter("sqlite3"));
SQLitePCL.raw.SetProvider(new SQLite3Provider_dynamic_cdecl());