2013-12-10 10 views
13

私はSqlite.netのPCLバージョンを使用していますhttps://github.com/oysteinkrog/SQLite.Net-PCLSQLiteの非同期PCLバージョンからSQLiteAsyncConnectionを使用するには?

ただし、DB接続設定を取得できません。 SQliteAsyncConnectionは元のバージョンと異なり、文字列(DBへのパス)は使用しませんが、[Func< SQLiteConnectionWithLock>.]2

これはどのように使用できますか? 一般的には、このライブラリの使い方は?私は、私のIOS、Android、WP8プロジェクトからすべてのビジネスロジックを行うコアPCLライブラリを持っています。私の理解は、私はPCLのlibにSqlite - ネット非同期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が混在しています。 'SQLitePlatformWP8CSharp'が' SQLite.Net.Platform.WindowsPhone8.CSharpSqlite'名前空間にあります – Johnbot

+0

コードにエラーはありませんが、データベースは作成されていません。どうして? –

2

私もこれに問題がありました。正しいJohnbotの答えを満たすために、私はこのライブラリをどのように使用して動作させるかを追加しています。私は実際にNuGetパッケージを理解していなかったので、私は手動でそれを行いました。

  1. プロジェクト https://github.com/oysteinkrog/SQLite.Net-PCL

  2. をするためのモードを解除し、DLLを作成するために設定し、VS2015でソリューションをロードダウンロードする:a)SQLite.Net

    B

)SQLite.Net.Async

c)SQLite e.Net.Platform.WinRTは、Windows 10のユニバーサルアプリケーション、または必要なプラットフォーム用です。

プロジェクトにこれらの参照があることを確認してください。ユニバーサルアプリのための

references

SQLiteはVSツール/拡張機能とアップデートからインストールされています。一度インストールされると、Universal Windows/Extensionsの下でVisual C++ 2015も参照する必要があります。

幸運を祈る!

+0

WinRTプラットフォームが必要ですか?私はアンドロイドとイオスに向けて開発したいだけです –

+0

時間が移動して、今はSQite.Net-PCLだけを使用します。私はもはやSqlite非同期呼び出しを使用しませんが、必要ならC#で非同期関数を作成します。申し訳ありませんが、私はまだIOSとアンドロイドをコーディングしていません。 – peterincumbria