SQLite-Net 扩展与 SQLite-Net 的兼容性 PCL(注意无句号)

SQLite-Net Extensions Compatibility with SQLite-Net PCL (note no period)

基本上我的问题归结为 SQLite-Net Extensions (NuGet Link) is compatible with Frank A. Krueger's SQLite-net PCL. As I understand it, at some point Oystein Krog created a fork to improve things in the past (possibly before Frank updated things?), so SQLite.Net PCL 是否成立。

现在有 Frank 的 "official" PCL 版本,我想坚持使用它而不是 fork。然而,目前还不清楚 SQLite-Net Extensions 是否真的只支持分叉。该站点说它支持 SQLite-net,但依赖项说 SQLite.net。为了我(和未来的人)的缘故,任何澄清都将不胜感激!!!

编辑:我知道 "SQLite-Net PCL" 只是 NuGet 包的名称,实际上并不是独立的 PCL。我在实际 PCL.

的代码中完全使用了这个(没有 SQLite-Net 扩展)

根据SQLite-Net Extensions documentation there is a flavor which is compatible with Frank A. Krueger's library but there is no nuget package that depends on Frank A. Krueger's nuget package

SQLite.Net Extensions-MvvmCross package which doesn't depend on SQLite.Net PCL but it depends on MvvmCross SQLite plugin 未从 nuget 中列出。

SQLite-Net Extensions is provided in three different flavours, depending on the SQLite-Net version that you are using:

  • SQLite-Net PCL version (also as NuGet package)
  • SQLite.Net.Async-PCL version (also as NuGet package)
  • MvvmCross SQLite Community version (also as NuGet package)
  • SQLite-Net standard version (also as NuGet package)

我认为这里有点混乱,因为 Frank Krueger nuget 包 不是 PCL。您不能根据特定于平台的库部署 PCL 库。因此,您不会找到使用该平台特定 SQLite.Net nuget 包的 SQLite-Net 扩展包。

但是,您可以 download the SQLite-Net Extension sources and copy the source files to your project. If you take a look at the sources,您会看到,除非另有定义,否则它将使用 Frank 的 SQLite 包。

#if USING_MVVMCROSS
using SQLiteConnection = Cirrious.MvvmCross.Community.Plugins.Sqlite.ISQLiteConnection;
#elif PCL
using SQLite.Net;
using SQLite.Net.Attributes;
#else
using SQLite;
#endif

我有一段时间没有测试了,但应该可以。

不过,我建议您坚持使用 SQLite-Net PCL,因为它得到了积极维护,并且目前正在发展更多功能(例如异步操作)。

已经有 SQLite.Net Extensions-PCL (2.0.0-alpha1) 的预发布版本(最后更新于 2016 年 8 月 13 日,星期六),它依赖于 sqlite-net-pcl (>= 1.1.2) 来自 Frank A. Krueger

https://www.nuget.org/packages/SQLiteNetExtensions/2.0.0-alpha1