2013-12-10 28 views
13

Sqlite.net'in bir PCL sürümünü kullanıyorum https://github.com/oysteinkrog/SQLite.Net-PCLSQLiteAsyncConnection, SQLite'nin async PCL sürümünden nasıl kullanılır?

Ancak, DB bağlantı ayarlarını alamıyorum. SQliteAsyncConnection, özgün sürümden farklı olarak bir dize (DB yolunu) almaz, ancak [Func< SQLiteConnectionWithLock>.]2

Bu nasıl kullanılabilir? Genel olarak: bu kitaplık nasıl kullanılır? IOS, Android ve WP8 projelerimdeki tüm iş mantığını yapan çekirdek bir PCL lib'um var. Anladığım kadarıyla Sqlite-Net Async PCL'yi PCL lib'eme bırakabiliyordum. Ama işe almak için bazı platformlara özel şeyler vermem gerekiyor gibi görünüyor.

cevap

25

SQLiteConnectionWithLock değerini döndüren ve bunu SQLiteAsyncConnection yapıcısına ileten bir işlev oluşturmanız yeterlidir.

string databasePath = "path"; 
var connectionFactory = new Func<SQLiteConnectionWithLock>(()=>new SQLiteConnectionWithLock(new SQLitePlatformWinRT(), new SQLiteConnectionString(databasePath, storeDateTimeAsTicks: false))); 
var asyncConnection = new SQLiteAsyncConnection(connectionFactory); 
+1

'SQLitePlatformWinRT' nereden geliyor? Ayrı paket? WP8 için de çalışıyor mu/bir uygulama var mı? – Krumelur

+0

WinRT ve WP8'i sorunuza karıştırdım. SQLite.Net.Platform.WindowsPhone8.CSharpSqlite' ad alanında "SQLitePlatformWP8CSharp" var – Johnbot

+0

Kodun hiçbir hatası yok, ancak veritabanı oluşturulmadı. Niye ya? –

2

Ben de bu problemleri yaşadım. Doğru olan Johnbot'un cevabını karşılamak için bu kütüphaneyi nasıl kullandığımı ve işe koyduğumu ekliyorum. NuGet paketlerini gerçekten anlamadım, bu yüzden el ile yaptım.

  1. İndir için DLL dosyaları modunu serbest ve oluşturmak için ayarlanmış proje https://github.com/oysteinkrog/SQLite.Net-PCL

  2. Yük VS2015 çözüm:

a) SQLite.Net

b) SQLite.Net.Async

c) SQLit Windows 10 evrensel uygulamalar için ya da ihtiyacınız olan platform için e.Net.Platform.WinRT.

Bu referansların projenizde olduğundan emin olun. Evrensel App

references

SQLite VS Araçlar/Eklentiler ve Güncellemeler den yüklenir. Yüklendikten sonra, ayrıca gerekli olan Visual C++ 2015 ile birlikte Universal Windows/Extensions altında başvurulur.

İyi şanslar!

+0

WinRT platformuna sahip olmam gerekiyor mu?Ben sadece android ve ios geliştirmek istiyorum –

+0

Zaman taşındı ve şimdi sadece SQlite.Net-PCL kullanıyorum, artık Sqlite async çağrılarını kullanmıyorum, ancak gerektiğinde C# içinde async işlevlerini yapıyorum. Affedersiniz ama henüz IOS ve android için kodlama yapıyorum, umarım bu yardımcı olur; – peterincumbria

İlgili konular