如何从异步PCL版本的SQLite中使用SQLiteAsyncConnection?

时间:2013-12-10 13:30:44

标签: c# sqlite windows-phone-8 xamarin.ios xamarin.android

我正在使用https://github.com/oysteinkrog/SQLite.Net-PCL

的PCL版Sqlite.net

但是,我无法进行数据库连接设置。 SQliteAsyncConnection与原始版本不同,不采用字符串(数据库的路径),而是[Func< SQLiteConnectionWithLock>.] 2

如何使用? 一般来说:如何使用这个库?我有一个核心PCL lib,可以完成iOS,Android和WP8项目的所有业务逻辑。我的理解是我可以将Sqlite-Net Async PCL放入我的PCL lib中。但似乎我必须提供一些特定于平台的东西才能让它发挥作用。

2 个答案:

答案 0 :(得分:28)

您只需要创建一个返回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 :(得分:2)

我也遇到过这个问题。为了满足Johnbot的答案是正确的,我将添加如何使用这个库并使其工作。我真的不了解NuGet包,所以我手动完成了。

  1. 下载该项目 https://github.com/oysteinkrog/SQLite.Net-PCL

  2. 在VS2015中加载解决方案,设置为发布模式并为以下内容创建dll:

  3. a)SQLite.Net

    b)SQLite.Net.Async

    c)SQLite.Net.Platform.WinRT适用于Windows 10通用应用程序或您需要的平台。

    确保您的项目中包含这些引用。

    references

    通用应用程序的SQLIte是从VS Tools / Extensions和Updates安装的。安装后,它将在Universal Windows / Extensions下引用,同时还需要Visual C ++ 2015。

    祝你好运!