我正在尝试从 Xamarin.Forms 学习 SQLite 及其用法。我发现建议将 Sqlite-net-pcl 作为 NuGet 包安装,并使用它来创建、打开、修改数据库。到那时一切都很好。但是,我正在努力在网络上找到有关 Sqlite-net-pcl 的更多详细信息。看来,这个库没有完整的文档。这个现实给我带来了一些问题,我相信我可以从 Stackoverflow 的前辈那里得到答案:
1-如果没有您尝试使用的库的文档,快速学习它的最佳方法是什么?尝试与错误?在这种情况下,我认为需要完整的类层次结构。
2-据我了解,Sqlite-net-pcl是Sqlite的部分实现。例如,在Sqlite的文档中,据说支持外键,但应该启用。但是,当我使用VisualStudio的ObjectBrowser工具时,我在Sqlite-net-Pcl中找不到这个属性。
3-考虑到,SQLite有更好的支持,如果我想直接在xamarin.forms(c#)而不是其派生版本(Sqlite-net-pcl)中使用SQLite,我该如何实现这一点?
最佳答案
最好使用 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.).
关于外键 - 没有任何限制。您可以自由使用它,无需任何“启用”。
还有一些其他选项,例如 Microsoft.Data.SQLite
和 System.Data.SQLite
,但我还没有在 Xamarin 中尝试过它们,如果它们有效,我认为他们不会像 SQLite-net 那样对 Mono 提供更好的支持。后者也在不断更新。
Here是微软官方关于使用sqlite-net-pcl的教程
如果你想使用ORM,你可以按照这个article来自官方文档,了解如何设置 SQLite 库以及 EFCore 包、迁移等。
如果您选择使用 EFCore,请考虑 Migration Limitations .
关于Xamarin.Forms 中的 SQLite-Net-Pcl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61613075/