Sqlite ou Sqlite.Core, Qual pacote usar na sua aplicação?


Se você está contruindo uma aplicação .NET 8 + Dapper com o SQLite como seu banco de dados, deve ter se deparado com duas bibliotecas de driver do SQLite que tem quase o mesmo nome, que são elas: Microsoft.Data.Sqlite e Microsoft.Data.Sqlite.Core.

Afinal, quando usar uma ou outra?

Microsoft.Data.Sqlite (RECOMENDADO na maioria dos casos)
  • Inclui o provedor de ADO.NET para SQLite.
  • Inclui o bundle com a biblioteca nativa do SQLite (e_sqlite3), através da dependência do pacote SQLitePCLRaw.bundle_e_sqlite3.
  • Pronto para usar: não precisa se preocupar em fornecer a DLL nativa de SQLite.
  • Ideal para: aplicações que precisam de uma instalação simples, como apps de console, desktop, ASP.NET Core

Microsoft.Data.Sqlite.Core (uso avançado)
  • Inclui apenas o provedor ADO.NET e não inclui a biblioteca nativa do SQLite.
  • Você precisa fornecer a biblioteca nativa por conta própria.
  • Útil para cenários muito específicos, como:
  • Aplicações que já carregam a biblioteca nativa de outra fonte.
  • Plataformas onde o SQLite já está embutido (por exemplo, alguns sistemas mobile).
  • Situações onde você quer controle total sobre a versão nativa do SQLite.
Em resumo:

Microsoft.Data.Sqlite
  • Inclui SQLite nativo
  • Usa-se quase sempre: apps comuns, .NET Core, ASP.NET Core, Console
Microsoft.Data.Sqlite.Core
  • Não inclui SQLite nativo
  • Usa-se somente se quiser ou precisar fornecer a DLL nativa do SQLite

Comentários