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?
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. "
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.
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 .
É 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.
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.
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.
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.
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.
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:
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!
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.
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
Respostas:
Em https://system.data.sqlite.org :
"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.
fonte
Aqui estão os que posso encontrar:
Fontes:
fonte
Agora também existe esta opção: http://code.google.com/p/csharp-sqlite/ - uma porta completa do SQLite para C #.
fonte
O pessoal do sqlite.org assumiu o desenvolvimento do provedor ADO.NET:
Na página inicial :
A lista completa de recursos pode ser encontrada em seu wiki . Os destaques incluem
As DLLs liberadas podem ser baixadas diretamente do site .
fonte
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.
fonte
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:
Os não objetivos incluem:
fonte
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.
fonte
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.
fonte
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:
fonte
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.
fonte
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 :)
fonte
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
fonte