Xamarin.Forms 中的 SQLite-Net-Pcl

SQLite-Net-Pcl in Xamarin.Forms

我正在尝试从 Xamarin.Forms 学习 SQLite 及其用法。我发现建议安装 Sqlite-net-pcl 作为 NuGet 包并使用它来创建、打开、修改数据库。到那时一切都很好。但是,我正在努力在网上找到有关 Sqlite-net-pcl 的更多详细信息。看来,该库没有全面的文档。这个现实给我带来了一些问题,我相信我可以从 Whosebug 的前辈那里得到答案:

1-如果没有您尝试使用的库的文档,快速学习它的最佳方法是什么?试错?在那种情况下,我认为需要完整的 class 层次结构。 2-据我所知,Sqlite-net-pcl 是 Sqlite 的部分实现。例如,在 Sqlite 的文档中说,支持外键,但应该启用。但是,当我使用VisualStudio的ObjectBrowser工具时,在Sqlite-net-Pcl中找不到这个属性。
3-考虑到 SQLite 有更好的支持,如果我想直接在 xamarin.forms(c#) 中使用 SQLite 而不是它的派生版本 (Sqlite-net-pcl) 我该如何实现?

最好使用 SQLite-net 库。它们只是 SQLite 流的包装器。你有你需要的一切。另外,如果你想使用 ORM,你也可以通过 Microsoft.EntityFrameworkCore.Sqlite

使用 EntityFrameworkCore

就像GitHub repository中所说的那样:

SQLite-net is an open source, minimal library to allow .NET, .NET Core, and Mono applications to store data in SQLite 3 databases. It was first designed to work with Xamarin.iOS, but has since grown up to work on all the platforms (Xamarin.*, .NET, UWP, Azure, etc.).

关于外键 - 没有任何限制。无需任何 "enabling".

即可自由使用

还有一些其他选项,例如 Microsoft.Data.SQLiteSystem.Data.SQLite,但我没有在 Xamarin 中尝试过它们,如果它们有效,我认为它们不会更好地支持Mono,就像您在 SQLite-net 中使用的那样。后者也在不断更新中

Here是微软官方关于使用sqlite-net-pcl

的教程

如果您想使用 ORM,可以按照官方文档中的 article 了解如何设置 SQLite 库,以及 EFCore 包、迁移等。

如果您选择使用 EFCore,请考虑 Migration Limitations