适用于 .net Core/Standard 的 SQLite 库:MS EF 还是 sqlite.org?

MrC*_*vin 1 sqlite system.data.sqlite .net-core .net-standard .net-standard-2.0

我无法概述与 .Net Core 和/或 Standard 一起使用的不同 SQLite 库。看来主要有两个:

MS 库完全独立于 sqlite.org 的库吗?如果是的话,建议使用哪一种?我更喜欢简单性......如果使用 sqlite.org,我似乎只需要两个 dll。

use*_*771 5

.NET Core/Standard 有两个主要的 SQLite 包。它们是独立的并使用单独的本机二进制文件。

  • 微软数据Sqlite
  • 系统.数据.SQLite

前者由 Microsoft 提供,后者由 SQLite.org 提供。我更喜欢 Microsoft 的,但除非您正在寻找特定的功能(SQLite.org 支持加密,Microsoft 支持 fts5 等),否则任何一种都可能工作得很好。它们都实现了 System.Data.Common,因此 API 几乎相同。SQLite.org 可以加载 Microsoft 无法加载的任意扩展(尽管在最新版本中,SQLite.org 看起来无法加载 fts5,我知道它可以与以前的版本一起使用)。

我建议使用 Entity Framework Core 或其他类似的第三方数据库抽象包,除非您出于某种原因绝对不能使用建模(如果需要,EFCore 仍然允许您偶尔运行低级查询)。开发速度更快,代码维护也更容易。

Microsoft.EntityFrameworkCore.Sqlite 使用 Microsoft.Data.Sqlite 在 EFCore 中提供对 Sqlite 的支持。所以在这种情况下你会想使用它。互联网上说您也可以使用 System.Data.SQLite,但看起来 Microsoft.EntityFrameworkCore.Sqlite 仍然尝试从 Microsoft.Data.Sqlite 加载底层本机二进制文件以达到某种目的,尽管它似乎确实使用 System.Data.SQLite用于实际的数据库操作。不确定那里到底发生了什么。