我想在Windows Phone Runtime应用中使用SQL关系。所以我似乎需要使用SQLite-net Extensions
我引用了这些文件:
SQLite.Net
SQLiteNetExtensions
SQLite for Windows Phone 8.1
但是当我想要建立联系时:
var connection = new SQLiteConnection( ... );
它需要ISQLitePlatform
接口的实现。我如何获得参数值?
(SQLite Net Extensions
似乎还没有准备好Windows Phone Runtime
个套餐,如果有人知道如何获得它我非常感激
答案 0 :(得分:0)
如果您已正确安装所有内容,则参数只是数据库文件的位置+ file_name。像这样:
string dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite");
using (var db = new SQLiteConnection(dbPath))
{
db.RunInTransaction(() =>
{
// ....
});
}
db.sqlite 可以是你想要的任何东西,它只是存储文件夹中文件的名称(但它必须存在,所以你需要先创建它)
一些有用的链接:
答案 1 :(得分:0)
我知道这是一个相当新的开发,但我认为他们几个小时前更新了他们的nuget包:
现在应该可以了。
答案 2 :(得分:0)
SQLite.Net-PCL自3.1.1版开始更改了API。根据他们的github项目中的自述文件:
您现在必须传入ISQlitePlatform的实现 SQLiteConnectionWithLock和SQLiteConnection构造函数。该 正确的平台实施会自动添加到项目中。
这对我来说对WinPhone81项目有用:
var conn = new SQLiteConnection( new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);
我有三个相关的Nuget pkgs: SQLite.Net.Core-PCL(v3.1.1) SQLite.Net-PCL(v3.1.1) SQLiteNetExtensions(v1.3.0)
也是针对Windows Phone 8.1的SQLite的库引用(根据SQLite.Net-PCL自述文件中的说明手动添加), 以及当我为SQLiteNetExtensions添加pkg时由Nuget pkg安装程序添加的SQLite.Net.Platform.WinRT的库引用。
这一切都让人联想到.Net诞生之前发生的旧式DLL地狱。似乎在阳光下没有新东西。