2013-12-10 47 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