C# 如何从SQLite的异步PCL版本使用SQLiteAsyncConnection?
我使用的是来自的Sqlite.net的PCL版本 但是,我无法获得数据库连接设置。C# 如何从SQLite的异步PCL版本使用SQLiteAsyncConnection?,c#,sqlite,windows-phone-8,xamarin.ios,xamarin.android,C#,Sqlite,Windows Phone 8,Xamarin.ios,Xamarin.android,我使用的是来自的Sqlite.net的PCL版本 但是,我无法获得数据库连接设置。SQliteAsyncConnection与原始版本不同,它不采用字符串(指向数据库的路径),而是采用[Func] 这个怎么用? 一般情况:如何使用此库?我有一个核心PCL库,它完成我的iOS、Android和WP8项目的所有业务逻辑。我的理解是,我可以将Sqlite Net异步PCL放入我的PCL库中。但似乎我必须提供一些特定于平台的东西才能让它工作。您只需要创建一个函数,返回一个SQLiteConnection
SQliteAsyncConnection
与原始版本不同,它不采用字符串(指向数据库的路径),而是采用[Func]
这个怎么用?
一般情况:如何使用此库?我有一个核心PCL库,它完成我的iOS、Android和WP8项目的所有业务逻辑。我的理解是,我可以将Sqlite Net异步PCL放入我的PCL库中。但似乎我必须提供一些特定于平台的东西才能让它工作。您只需要创建一个函数,返回一个
SQLiteConnectionWithLock
并将其传递给SQLiteAsyncConnection
构造函数
string databasePath = "path";
var connectionFactory = new Func<SQLiteConnectionWithLock>(()=>new SQLiteConnectionWithLock(new SQLitePlatformWinRT(), new SQLiteConnectionString(databasePath, storeDateTimeAsTicks: false)));
var asyncConnection = new SQLiteAsyncConnection(connectionFactory);
string databasePath=“path”;
var connectionFactory=new Func(()=>new-SQLiteConnectionWithLock(new-SQLitePlatformWinRT(),new-SQLiteConnectionString(databasePath,storeDateTimeAsTicks:false));
var asyncConnection=新的SQLiteAsyncConnection(connectionFactory);
我在这方面也遇到了问题。为了满足Johnbot的正确答案,我添加了我是如何使用这个库并使其工作的。我没有真正理解NuGet软件包,所以我手动完成了它
祝你好运
SQLitePlatformWinRT
来自哪里?单独包装?它是否也适用于WP8/是否有实现?我在您的问题中混淆了WinRT和WP8。在SQLite.Net.Platform.WindowsPhone8.CSharpSqlite
名称空间中有SQLitePlatformWP8CSharp
,谢谢!这个人很难找到。其他地方的所有文档似乎都暗示您可以使用数据库路径创建一个SQLiteAsyncConnection
。同样,谢谢。这个显然有用的库的文档远远不够。如果您的连接工厂不断提供新的连接,您最终会遇到SQLite忙异常。。。您最好创建一个连接,并让连接工厂返回该连接。我需要WinRT平台吗?我只想向android发展,而iosTime已经向前发展了,我现在只使用SQlite.Net-PCL,我不再使用SQlite异步调用,而是在需要时用C#生成异步函数。对不起,我还没有为IOS和android编写代码,希望这能有所帮助;