2013-12-10 26 views
13

我使用PCL版本的Sqlite.net從https://github.com/oysteinkrog/SQLite.Net-PCL如何從異步PCL版本的SQLite中使用SQLiteAsyncConnection?

但是,我無法獲得數據庫連接設置。 SQliteAsyncConnection不像原來的版本不帶字符串(路徑到數據庫),但一個[Func< SQLiteConnectionWithLock>.]2

這怎麼可以使用? 一般來說:如何使用這個庫?我有一個核心PCL庫,它可以完成iOS,Android和WP8項目中的所有業務邏輯。我的理解是我可以將Sqlite-Net異步PCL放入我的PCL庫。但似乎我不得不提供一些平臺特定的東西來使其運行。

回答

25

您只需創建一個返回SQLiteConnectionWithLock並將其傳遞給SQLiteAsyncConnection構造函數的函數。

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

SQLitePlatformWinRT從哪裏來?單獨的包?它是否也適用於WP8 /是否有實施? – Krumelur

+0

我在你的問題中混淆了WinRT和WP8。在SQLite.Net.Platform.WindowsPhone8.CSharpSqlite命名空間中有'SQLitePlatformWP8CSharp' – Johnbot

+0

該代碼沒有任何錯誤,但數據庫沒有創建。爲什麼? –

2

我也有過這個問題。爲了滿足Johnbot的答案是正確的,我加入了我如何使用這個庫並使其工作。我不太瞭解NuGet包,所以我手動完成了。

  1. 下載項目 https://github.com/oysteinkrog/SQLite.Net-PCL

  2. 負載在VS2015的解決方案,將發佈模式,創建一個動態鏈接庫爲:

一)SQLite.Net

b )SQLite.Net.Async

c)SQLit e.Net.Platform.WinRT適用於Windows 10通用應用程序,或者您需要的平臺。

確保您在項目中具有這些參考文獻。

references

SQLite,讓通用的應用程序從VS工具/擴展和更新安裝。安裝完成後,它將在通用Windows/Extensions下引用,同時還需要Visual C++ 2015。

祝你好運!

+0

我需要有WinRT平臺嗎?我只想對Android和iOS開發 –

+0

時間已經移動了,我現在只使用SQlite.Net-PCL,我不再使用SQLite異步調用,但是如果需要做異步功能在C#。對不起,但我還沒有編碼IOS和Android,希望這有助於; – peterincumbria