跨平台的Sqlite

Ric*_*son 8 c# sqlite

我正在编写一个需要在iOS,Android,Windows Phone,WPF,Windows 8 Metro,Linux和Mac上运行的应用程序.我在跨平台领域拥有大约95%的代码,但是UI和一些事情显然需要针对每个平台进行专门编码.

现在,我们需要在应用程序中添加一些非常简单的数据库支持,我很乐意在我的代码中从跨平台领域对抗Sqlite.这可以用任何现有的Sqlite包装器完成,还是我需要创建自己的?或者我应该使用几个具有相同语法的Sqlite包装器,并且只引用不同csproj文件(每个平台)中的不同库?

我读过这个Q/A 是否有针对SQLite的.NET/C#包装器?但经过一个小时的阅读后,我仍然不确定如何在所有平台上运行,所以我认为有人可能会在我面前考虑这些事情.

Mar*_*cos 4

使用 SQLite 进行跨平台 .NET/C# 开发的一些选项包括:

SQLitePCL.raw

用于低级(原始)访问 SQLite 的可移植类库 (PCL)

SQLitePCL.raw 在 SQLite C API 之上提供了一个非常薄的 C# 包装器。从应用程序开发人员的角度来看,SQLitePCL.raw 公开的 API 是敌对的,但其设计目的是用作通用的可移植层,可以在其上构建更友好的包装器。

许可证:Apache 许可证 v2

源代码: https: //github.com/ericsink/SQLitePCL.raw

Nuget: https: //www.nuget.org/packages/SQLitePCLRaw.core

平台:Xamarin.Android、Xamarin.iOS、UWP、Windows Phone 8.1、.NET 4.5、.NET 4.0、.NET 3.5、Linux、MacOS、NetStandard 1.1、Windows Phone 8(有限制)、Windows Phone 8.1 Silverlight(有限制) )


SQLitePCL.pretty

SQLitePCL.raw 上的漂亮面孔

该库使用友好的 C# 面向对象 API 包装了 SQLitePCL.raw 提供的 C 语言 SQLiteAPI。SQLitePCL.pretty 具有广泛的单元测试覆盖范围,并支持最新 SQLite 版本中提供的许多新功能。

许可证:Apache 许可证 v2

源代码: https: //github.com/bordoley/SQLitePCL.pretty

Nuget: https: //www.nuget.org/packages/SQLitePCL.pretty

平台:与 SQLitePCL.raw 相同


SQLite网络

简单、强大、跨平台的 SQLite 客户端和适用于 .NET 的 ORM

SQLite-net 被设计为一个快速且方便的数据库层。非常容易与现有项目集成并在所有 .NET 平台上运行,具有非常简单的方法来安全地执行 CRUD 操作和查询(使用参数)并以强类型方式检索这些查询的结果。

许可证:麻省理工学院许可证

源代码: https: //github.com/praeclarum/sqlite-net

Nuget: https: //www.nuget.org/packages/sqlite-net-pcl

平台:与 SQLitePCL.raw 相同


微软数据Sqlite

System.Data.Common 接口的 SQLite 实现

该项目是 ASP.NET Core 的一部分,由 Microsoft 维护

许可证:Apache 许可证 v2

源代码: https: //github.com/aspnet/Microsoft.Data.Sqlite

Nuget: https: //www.nuget.org/packages/Microsoft.Data.SQLite

平台:.NET Framework、Mono、.NET Core(.NET Native、CoreCLR、Windows Universal)、Xamarin(计划)