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。
.NET Core/Standard 有两个主要的 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用于实际的数据库操作。不确定那里到底发生了什么。