Existe um wrapper .NET / C # para SQLite? [fechadas]

267

Eu gostaria de usar o SQLite no C # .Net, mas não consigo encontrar uma biblioteca apropriada. Existe um? Oficial? Existem outras maneiras de usar o SQLite além de um wrapper?

ian93
fonte
4
Esta é uma duplicata desta pergunta: stackoverflow.com/questions/26020/… e tem uma resposta diferente.
Stewart Johnson
2
Na verdade, acredito que ambas as respostas aceitas estão vinculadas ao mesmo projeto.
Colin

Respostas:

328

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

System.Data.SQLite é um adaptador ADO.NET para SQLite.

O System.Data.SQLite foi iniciado por Robert Simpson. Robert ainda tem privilégios de confirmação neste repositório, mas não é mais um colaborador ativo. O trabalho de desenvolvimento e manutenção agora é realizado principalmente pela equipe de desenvolvimento do SQLite. A equipe do SQLite está comprometida em oferecer suporte a System.Data.SQLite a longo prazo.

"System.Data.SQLite é o mecanismo de banco de dados SQLite original e um provedor ADO.NET 2.0 completo, reunidos em um único conjunto de modo misto. É um substituto completo para o sqlite3.dll original (você pode até renomeá-lo para Ao contrário dos assemblies mistos normais, ele não tem dependência de vinculador no tempo de execução do .NET, portanto pode ser distribuído independentemente do .NET. "

Ele ainda suporta Mono.

ine
fonte
33
Esta é uma pergunta antiga, mas tive que adicionar meus US $ 0,02. Rochas System.Data.SQLite. É de qualidade super refinada, estável e comercial. O melhor de tudo é que é um código gerenciado 100% e foi lançado como código-fonte de domínio público.
Nathan Ridley
4
Apenas por consistência, porque as pessoas estão falando sobre as duas coisas como diferentes. No sqlite.phxsoftware.com você é direcionado para sourceforge.net/projects/sqlite-dotnet2 para fazer o download.
yeyeyerman
16
Esse wrapper não está mais sendo desenvolvido pelo autor original e o desenvolvimento parece ter sido assumido pelo próprio SQLite. O novo site está em system.data.sqlite.org, embora no momento pareça menos fácil de usar e mais em andamento em comparação com o original.
Mikel
5
@NathanRidley - Você tem certeza de que é 100% gerenciado, porque esta resposta diz "System.Data.SQLite é o mecanismo de banco de dados SQLite original e um provedor ADO.NET 2.0 completo, todos
reunidos
2
FYI, tentei usar o pacote Microsoft.Data.Sqlite .NET Standard Nuget da Microsoft, mas falhou em vários testes de integração na biblioteca do AsyncPoco Github. Depois de mudar para o System.Data.SQLite, tudo funcionou perfeitamente.
Lee Grissom
15

O pessoal do sqlite.org assumiu o desenvolvimento do provedor ADO.NET:

Na página inicial :

Este é um fork do popular adaptador ADO.NET 4.0 para SQLite, conhecido como System.Data.SQLite. O criador do System.Data.SQLite, Robert Simpson, está ciente desse fork, expressou sua aprovação e possui privilégios de confirmação no novo repositório Fossil. A equipe de desenvolvimento do SQLite pretende manter o System.Data.SQLite em frente.

Versões históricas, bem como os fóruns de suporte originais, ainda podem ser encontrados em http://sqlite.phxsoftware.com , embora não haja atualizações para esta versão desde abril de 2010.

A lista completa de recursos pode ser encontrada em seu wiki . Os destaques incluem

  • Suporte para ADO.NET 2.0
  • Suporte completo ao Entity Framework
  • Suporte Mono completo
  • Suporte do Visual Studio 2005/2008 em tempo de design
  • Estrutura compacta, suporte C / C ++

As DLLs liberadas podem ser baixadas diretamente do site .

David Schmitt
fonte
DLLs prontas já estão disponíveis
zomf 23/11
8

Eu definitivamente iria com System.Data.SQLite (como mencionado anteriormente: http://sqlite.phxsoftware.com/ )

É coerente com o ADO.NET (System.Data. *) E é compilado em uma única DLL. Não existe sqlite3.dll - porque o código C do SQLite está incorporado no System.Data.SQLite.dll. Um pouco de magia C ++ gerenciada.

tonyz
fonte
link está atualmente 404
SqlACID
7

O sqlite-net é uma biblioteca mínima de código aberto para permitir que aplicativos .NET e Mono armazenem dados em bancos de dados SQLite 3 . Mais informações na página wiki .

Está escrito em C # e deve ser compilado com seus projetos. Ele foi projetado para funcionar com o MonoTouch no iPhone, mas cresceu para funcionar em todas as plataformas (Mono para Android, .NET, Silverlight, WP7, WinRT, Azure etc.).

Está disponível como um pacote Nuget , onde é o segundo pacote SQLite mais popular, com mais de 60.000 downloads em 2014.

O sqlite-net foi projetado como uma camada de banco de dados rápida e conveniente. Seu design segue esses objetivos:

  • Muito fácil de integrar com projetos existentes e com projetos MonoTouch.
  • Wrapper fino sobre SQLite e deve ser rápido e eficiente. (A biblioteca não deve ser o gargalo de desempenho de suas consultas.)
  • Métodos muito simples para executar operações e consultas CRUD com segurança (usando parâmetros) e para recuperar os resultados dessas consultas de maneira fortemente tipada.
  • Funciona com seu modelo de dados sem forçar você a alterar suas classes. (Contém uma pequena camada ORM orientada a reflexão.)
  • 0 dependências além de uma forma compilada da biblioteca sqlite2.

Os não objetivos incluem:

  • Não é uma implementação do ADO.NET. Este não é um driver SQLite completo. Se você precisar, use System.Data.SQLite.
dodgy_coder
fonte
Percebo que a maioria dos comentários anteriores a 2014 dizia System.Data.SQLite que tentei instalar no meu Windows Store App (não funcionou). Sqlite-net funciona.
precisa saber é o seguinte
2

Mono vem com um invólucro. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 fornece código para agrupar a dll SQLite real ( http: //www.sqlite. org / sqlite-shell-win32-x86-3071300.zip encontrado na página de download http://www.sqlite.org/download.html/ ) de uma maneira amigável para .net. Funciona no Linux ou Windows.

Esse parece o mais fino de todos os mundos, minimizando sua dependência de bibliotecas de terceiros. Se eu tivesse que fazer esse projeto do zero, é assim que eu faria.

Expiação limitada
fonte
2

Microsoft.Data.Sqlite

A Microsoft agora fornece o Microsoft.Data.Sqlite como uma solução SQLite primária para .NET, que é fornecida como parte do ASP.NET Core. A licença é a licença Apache, versão 2.0 .

* Isenção de responsabilidade: Na verdade, eu ainda não tentei usar isso, mas há alguma documentação fornecida no Microsoft Docs aqui para usá-lo com o .NET Core e o UWP.

Christopher Kyle Horton
fonte
2

Para aqueles como eu que não precisam ou não desejam o ADO.NET, aqueles que precisam executar o código mais perto do SQLite, mas ainda compatíveis com netstandard(estrutura .net, núcleo .net, etc.), criei um Projeto de código aberto 100% gratuito chamado SQLNado (para "Not ADO") disponível no github aqui:

https://github.com/smourier/SQLNado

Está disponível como um nuget aqui https://www.nuget.org/packages/SqlNado, mas também está disponível como um único arquivo .cs, portanto, é bastante prático usar em qualquer tipo de projeto C #.

Ele suporta todos os recursos SQLite ao usar comandos SQL e também suporta a maioria dos recursos SQLite através do .NET:

  • Mapeamento automático de classe para tabela (Salvar, Excluir, Carregar, LoadAll, LoadByPrimaryKey, LoadByForeignKey, etc.)
  • Sincronização automática de esquema (tabelas, colunas) entre classes e tabela existente
  • Projetado para operações seguras para threads
  • Where e OrderBy expressões LINQ / IQueryable .NET são suportadas (o trabalho ainda está em andamento nesta área), também com suporte a agrupamento
  • Esquema do banco de dados SQLite (tabelas, colunas, etc.) exposto ao .NET
  • As funções personalizadas do SQLite podem ser escritas no .NET
  • A E / S incremental de SQLite BLOB é exposta como um fluxo .NET para evitar alto consumo de memória
  • Suporte ao agrupamento SQLite, incluindo a possibilidade de adicionar agrupamentos personalizados usando o código .NET
  • Suporte ao mecanismo de pesquisa de texto completo do SQLite (FTS3), incluindo a possibilidade de adicionar tokenizadores FTS3 personalizados usando o código .NET (como palavras de parada localizadas, por exemplo). Não acredito que nenhum outro wrapper .NET faça isso.
  • Suporte automático ao Windows 'winsqlite3.dll' (apenas nas versões recentes do Windows) para evitar o envio de qualquer arquivo de dependência binário . Isso funciona também nos aplicativos Web do Azure!
Simon Mourier
fonte
0

A versão 1.2 do Monotouch inclui suporte para System.Data. Você pode encontrar mais detalhes aqui: http://monotouch.net/Documentation/System.Data

Mas basicamente ele permite que você use os padrões habituais do ADO .NET com o sqlite.

user203709
fonte
0

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

O dotConnect for SQLite é um provedor de dados aprimorado para SQLite que se baseia na tecnologia ADO.NET para apresentar uma solução completa para o desenvolvimento de aplicativos de banco de dados baseados em SQLite. Como parte da estrutura de desenvolvimento de aplicativos de banco de dados Devart, o dotConnect for SQLite oferece conectividade nativa de alto desempenho ao banco de dados SQLite e várias ferramentas e tecnologias de desenvolvimento inovadoras.

O dotConnect for SQLite apresenta novas abordagens para projetar a arquitetura de aplicativos, aumenta a produtividade e aproveita a implementação de aplicativos de banco de dados.

Eu uso a versão padrão, funciona perfeito :)

Antonio
fonte
0

Um wrapper de barebones das funções, conforme fornecido pela biblioteca sqlite. A versão mais recente suporta funções fornecidas pela biblioteca sqlite 3.7.10

Projeto SQLiteWrapper

Eminem
fonte