SQLite有。net / c#包装器吗?

我有点喜欢从c#中使用SQLite。Net,但我似乎找不到合适的图书馆。有吗?官方的?除了使用包装器,还有其他方法使用SQLite吗?

119483 次浏览

https://system.data.sqlite.org:

System.Data.SQLite是ADO。SQLite的NET适配器。

sqlite是由Robert Simpson创建的。Robert仍然拥有此存储库上的提交特权,但不再是活动贡献者。开发和维护工作现在主要由SQLite开发团队执行。SQLite团队致力于长期支持System.Data.SQLite。

“System.Data。SQLite是原始的SQLite数据库引擎和一个完整的ADO。NET 2.0提供程序全部滚入一个混合模式程序集。它完全取代了原来的sqlite3.dll(您甚至可以将其重命名为sqlite3.dll)。与普通的混合程序集不同,它不依赖于。net运行时,因此可以独立于。net进行分发。”

它甚至支持Mono。

以下是我能找到的:

来源:

我肯定会使用System.Data.SQLite(如前所述:http://sqlite.phxsoftware.com/)

它与ADO是一致的。NET (System.Data.*),并被编译成单个DLL。没有sqlite3.dll -因为SQLite的C代码嵌入在System.Data.SQLite.dll中。一点托管的c++魔法。

现在还有这个选项:http://code.google.com/p/csharp-sqlite/ -一个完整的SQLite到c#的移植。

Monotouch 1.2版本包含了对System.Data的支持。你可以在这里找到更多细节: http://monotouch.net/Documentation/System.Data < / p >

但基本上,它允许你在sqlite中使用常见的ADO . net模式。

http://www.devart.com/dotconnect/sqlite/

dotConnect for SQLite是一个基于ADO的增强的SQLite数据提供程序。NET技术为开发基于sqlite的数据库应用程序提供了一个完整的解决方案。作为Devart数据库应用程序开发框架的一部分,dotConnect for SQLite既提供了到SQLite数据库的高性能本机连接,也提供了许多创新的开发工具和技术。

SQLite的dotConnect引入了设计应用程序架构的新方法,提高了工作效率,并利用了数据库应用程序实现。

我使用标准版本,它工作完美:)

来自sqlite.org的人们已经接管了ADO的开发。净提供者:

他们的主页:

这是流行ADO的一个分支。网 SQLite 4.0适配器称为System.Data.SQLite。的鼻祖 System.Data。SQLite,罗伯特·辛普森 意识到这一分叉,已经表达了他的 批准,并具有提交权限 新的化石仓库。SQLite的 开发团队打算维护的

. sqlite继续

历史版本,以及 原来的支持论坛,可能还在 发现 http://sqlite.phxsoftware.com,尽管 目前还没有最新消息

完整的特性列表可以在在他们的维基上找到。亮点包括

  • ADO。NET 2.0支持
  • 完整的实体框架支持
  • 完全支持Mono
  • Visual Studio 2005/2008设计时支持
  • 紧凑框架,C/ c++支持

已发布的dll可以直接从这个网站下载。

由sqlite库提供的函数的基本包装器。最新版本支持sqlite库3.7.10提供的函数

SQLiteWrapper项目

Mono带有一个包装。https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0给出了以.net友好的方式包装实际SQLite dll (http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip在下载页面http://www.sqlite.org/download.html/中找到)的代码。它可以在Linux或Windows上运行。

这似乎是所有世界中最薄的,可以最大限度地减少对第三方库的依赖。如果我必须从头开始做这个项目,我就会这样做。

sqlite-net是一个开源的最小库,允许. net和Mono应用程序在SQLite 3数据库中存储数据。更多信息在wiki页面

它是用c#编写的,可以简单地编译到项目中。它最初是为iPhone上的MonoTouch设计的,但已经发展到可以在所有平台上工作(Mono for Android, . net, Silverlight, WP7, WinRT, Azure等)。

它以Nuget包的形式提供,截至2014年,它是第二大最受欢迎的SQLite包,下载量超过6万次。

Sqlite-net被设计成一个快速方便的数据库层。它的设计遵循以下目标:

  • 非常容易与现有项目和MonoTouch项目集成。
  • 薄包装SQLite,应该快速和有效。(库不应该成为查询的性能瓶颈。)
  • 安全执行CRUD操作和查询的非常简单的方法(使用参数),并以强类型的方式检索这些查询的结果。
  • 使用您的数据模型,而无需强制您更改类。(包含一个小的反射驱动ORM层。)
  • 0依赖项,除了sqlite2库的编译形式。

非目标包括:

  • 一个ADO。净的实现。这不是一个完整的SQLite驱动程序。如果需要,请使用System.Data.SQLite。

Microsoft.Data.Sqlite

微软现在提供Microsoft.Data.Sqlite作为。net的第一方SQLite解决方案,它是作为ASP. net的一部分提供的。净的核心。该许可证是Apache许可证,版本2.0

* 免责声明:我自己还没有尝试过使用这个,但微软文档上提供了一些文档here用于。net Core和UWP。

对于那些像我一样不需要或不想要ADO的人。NET,那些需要运行代码更接近SQLite,但仍然兼容netstandard (. NET框架,. NET核心等)的人,我已经建立了一个100%免费的开源项目,名为SQLNado (for "Not ADO")可在github这里:

https://github.com/smourier/SQLNado

它可以作为一个nuget https://www.nuget.org/packages/SqlNado,但也可以作为一个单独的.cs文件,所以在任何c#项目类型中使用它都非常实用。

当使用SQL命令时,它支持所有SQLite特性,并且通过.NET也支持大多数SQLite特性:

  • 自动类到表的映射(保存,删除,加载,LoadAll, LoadByPrimaryKey, LoadByForeignKey等)
  • 在类和现有表之间自动同步模式(表、列)
  • 为线程安全操作而设计
  • 哪里和OrderBy支持LINQ/IQueryable .NET表达式(这方面的工作仍在进行中),还支持排序规则
  • 向. net公开的SQLite数据库模式(表、列等)
  • SQLite自定义函数可以用。net编写
  • SQLite增量BLOB I/O被公开为.NET流,以避免高内存消耗
  • SQLite排序支持,包括使用.NET代码添加自定义排序的可能性
  • SQLite扩展(.dll)加载支持
  • SQLite全文搜索引擎(FTS3)支持,包括使用。net代码添加自定义FTS3标记器的可能性(例如本地化的停止词)。我不相信任何其他。net包装器会这样做。
  • 自动支持Windows 'winsqlite3.dll'(仅在最近的Windows版本上)到避免发布任何二进制依赖项文件。这也适用于Azure Web应用程序!