Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft.Data.Sqlite
, SQLitePCLRaw
üzerine kuruludur. Paket kullanarak veya sağlayıcı yapılandırarak SQLitePCLRaw
yerel SQLite kitaplığının özel sürümlerini kullanabilirsiniz.
Ürün demetleri
SQLitePCLRaw
farklı platformlarda doğru bağımlılıkları sağlamayı kolaylaştıran, kolaylık tabanlı paket paketleri sağlar. Ana Microsoft.Data.Sqlite
paket SQLitePCLRaw.bundle_e_sqlite3
'i varsayılan olarak içeri alır. Farklı bir paket kullanmak istiyorsanız, kullanmak istediğiniz paket paketiyle birlikte Microsoft.Data.Sqlite.Core
paketini yükleyin.
Microsoft.Data.Sqlite
tarafından paketler otomatik olarak başlatılır.
Paket | Açıklama |
---|---|
SQLitePCLRaw.bundle_e_sqlite3 | Tüm platformlarda SQLite'in tutarlı bir sürümünü sağlar. FTS4, FTS5, JSON1 ve R*Tree uzantılarını içerir. Bu varsayılan seçenektir. |
SQLitePCLRaw.bundle_e_sqlcipher | Resmi olmayan, açık kaynak derlemesini SQLCipher sağlar. |
SQLitePCLRaw.bundle_green | Aynısı, iOS'ta sistem SQLite kütüphanesini kullandığı durumlar hariç bundle_e_sqlite3 ile aynıdır. |
SQLitePCLRaw.bundle_sqlite3 | Sistem SQLite kitaplığını kullanır. |
SQLitePCLRaw.bundle_winsqlite3 | Windows 10'da sistem SQLite kitaplığını kullanır winsqlite3.dll . |
SQLitePCLRaw.bundle_zetetic | Zetetic'in resmi SQLCipher derlemelerini kullanır (dahil değil). |
Örneğin, resmi olmayan açık kaynak derlemesini SQLCipher
kullanmak için aşağıdaki komutları kullanın.
dotnet add package Microsoft.Data.Sqlite.Core
dotnet add package SQLitePCLRaw.bundle_e_sqlcipher
SQLitePCLRaw kullanılabilir sağlayıcılar
Bir pakete güvenmediğinizde, çekirdek derleme ile kullanılabilir SQLite sağlayıcılarını kullanabilirsiniz.
Sağlayıcı | Açıklama |
---|---|
SQLitePCLRaw.provider.dynamic | Sağlayıcı, dynamic özniteliklerini kullanmak yerine yerel kitaplığı yükler. Bu sağlayıcıyı kullanma hakkında daha fazla bilgi için dinamik sağlayıcıyı kullanma konusuna bakın. |
SQLitePCLRaw.provider.e_sqlite3 |
e_sqlite3 varsayılan sağlayıcıdır. |
SQLitePCLRaw.provider.e_sqlcipher | Sağlayıcı e_sqlcipher gayriresmi olup desteklenmemektedir SQLCipher . |
SQLitePCLRaw.provider.sqlite3 |
sqlite3 sağlayıcısı, iOS, macOS ve Linux için sistem tarafından sağlanan bir SQLite 'dir. |
SQLitePCLRaw.provider.sqlcipher | Sağlayıcı sqlcipher , SQLCipher üzerindeki resmi Zetetic derlemeler içindir. |
SQLitePCLRaw.provider.winsqlite3 | Sağlayıcı winsqlite3 Windows 10 ortamları içindir. |
Sağlayıcıyı sqlite3
kullanmak için aşağıdaki komutları kullanın:
dotnet add package Microsoft.Data.Sqlite.Core
dotnet add package SQLitePCLRaw.core
dotnet add package SQLitePCLRaw.provider.sqlite3
Paketler yüklendikten sonra sağlayıcıyı sqlite3
örneğe ayarlarsınız.
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}");
}
}
}
Dinamik sağlayıcıyı kullanma
Kendi SQLite derlemenizi, SQLitePCLRaw.provider.dynamic_cdecl
paketini kullanarak kullanabilirsiniz. Bu durumda, yerel kütüphaneyi uygulamanızla birlikte dağıtmak sizin sorumluluğunuzdadır. Yerel kitaplıkları uygulamanızla dağıtmanın ayrıntıları, kullandığınız .NET platformuna ve çalışma zamanına bağlı olarak önemli ölçüde farklılık gösterir.
İlk olarak uygulamanız gerekir IGetFunctionPointer
. .NET Core'da uygulama aşağıdaki gibidir:
class NativeLibraryAdapter : IGetFunctionPointer
{
readonly IntPtr _library;
public NativeLibraryAdapter(string name)
=> _library = NativeLibrary.Load(name);
public IntPtr GetFunctionPointer(string name)
=> NativeLibrary.TryGetExport(_library, name, out var address)
? address
: IntPtr.Zero;
}
Ardından sağlayıcıyı SQLitePCLRaw
yapılandırın.
Microsoft.Data.Sqlite
öğesinin uygulamanızda kullanılmasından önce bunun yapıldığından emin olun. Ayrıca, sağlayıcınızı geçersiz kabilecek bir SQLitePCLRaw
paket paketi kullanmaktan kaçının.
SQLite3Provider_dynamic_cdecl
.Setup("sqlite3", new NativeLibraryAdapter("sqlite3"));
SQLitePCL.raw.SetProvider(new SQLite3Provider_dynamic_cdecl());