Существует ли оболочка.NET/C# для SQLite?
Я бы хотел использовать SQLite из C#.Net, но не могу найти подходящую библиотеку. Есть один? Официальный? Есть ли другие способы использовать SQLite, кроме как с оберткой?
12 ответов
С https://system.data.sqlite.org/:
System.Data.SQLite - это адаптер ADO.NET для SQLite.
System.Data.SQLite был запущен Робертом Симпсоном. Роберт все еще имеет права коммитов в этом репозитории, но больше не является активным участником. Работа по разработке и обслуживанию в настоящее время в основном выполняется командой разработчиков SQLite. Команда SQLite стремится поддерживать System.Data.SQLite в долгосрочной перспективе.
"System.Data.SQLite - это оригинальный движок базы данных SQLite и полный поставщик ADO.NET 2.0, объединенные в единую сборку в смешанном режиме. Это полная замена оригинальной sqlite3.dll (вы даже можете переименовать ее в sqlite3.dll). В отличие от обычных смешанных сборок, у него нет зависимости компоновщика от среды выполнения.NET, поэтому он может распространяться независимо от.NET."
Он даже поддерживает Mono.
Вот те, которые я могу найти:
- управляемых SQLite
- Оболочка SQLite.NET
- System.Data.SQLite
Источники:
- sqlite.org
- другие постеры
Также теперь есть эта опция: http://code.google.com/p/csharp-sqlite/ - полный порт SQLite для C#.
Люди из sqlite.org взялись за разработку провайдера ADO.NET:
Это вилка популярного адаптера ADO.NET 4.0 для SQLite, известного как System.Data.SQLite. Создатель System.Data.SQLite, Роберт Симпсон, знает об этом форке, выразил свое одобрение и имеет права коммитов на новый репозиторий Fossil. Команда разработчиков SQLite намерена поддерживать System.Data.SQLite в дальнейшем.
Исторические версии, а также оригинальные форумы поддержки можно найти по адресу http://sqlite.phxsoftware.com/, хотя с апреля 2010 года этой версии не было обновлений.
Полный список функций можно найти на их вики. Основные моменты включают
- Поддержка ADO.NET 2.0
- Полная поддержка Entity Framework
- Полная поддержка Mono
- Visual Studio 2005/2008 Поддержка времени разработки
- Compact Framework, поддержка C/C++
Выпущенные DLL могут быть загружены непосредственно с сайта.
sqlite-net - это минимальная библиотека с открытым исходным кодом, позволяющая приложениям.NET и Mono хранить данные в базах данных SQLite 3. Больше информации на вики-странице.
Он написан на C# и предназначен для простой компиляции с вашими проектами. Сначала он был разработан для работы с MonoTouch на iPhone, но вырос на работу на всех платформах (Mono для Android, .NET, Silverlight, WP7, WinRT, Azure и т. Д.).
Он доступен в виде пакета Nuget, где он является вторым по популярности пакетом SQLite с более чем 60000 загрузок по состоянию на 2014 год.
sqlite-net был спроектирован как быстрый и удобный слой базы данных. Его дизайн вытекает из этих целей:
- Очень легко интегрировать с существующими проектами и с проектами MonoTouch.
- Тонкая оболочка над SQLite и должна быть быстрой и эффективной. (Библиотека не должна быть узким местом производительности ваших запросов.)
- Очень простые методы безопасного выполнения CRUD-операций и запросов (с использованием параметров) и получения результатов этих запросов строго типизированным способом.
- Работает с вашей моделью данных, не заставляя вас менять классы. (Содержит небольшой слой ORM, управляемый отражением.)
- 0 зависимостей помимо скомпилированной формы библиотеки sqlite2.
Не цели включают в себя:
- Не реализация ADO.NET. Это не полный драйвер SQLite. Если вам это нужно, используйте System.Data.SQLite.
Я бы определенно пошел с System.Data.SQLite (как упоминалось ранее: http://sqlite.phxsoftware.com/)
Он согласован с ADO.NET (System.Data.*) И скомпилирован в одну DLL. Нет sqlite3.dll - потому что код C SQLite встроен в System.Data.SQLite.dll. Немного управляемой магии C++.
Microsoft.Data.Sqlite
Microsoft теперь предоставляет Microsoft.Data.Sqlite в качестве первого решения SQLite для.NET, которое предоставляется как часть ASP.NET Core. Лицензия Apache License, версия 2.0.
* Отказ от ответственности: На самом деле я сам еще не пробовал использовать это, но здесь есть некоторая документация по Microsoft Docs для использования с.NET Core и UWP.
Mono поставляется с оберткой. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 дает код для переноса действительной библиотеки SQLite ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip найти на странице загрузки ( http://www.sqlite.org/download.html/) в формате.net. Работает на Linux или Windows.
Это кажется самым тонким из всех миров, сводя к минимуму вашу зависимость от сторонних библиотек. Если бы мне пришлось делать этот проект с нуля, я бы так и сделал.
Для таких, как я, которые не нуждаются или не хотят ADO.NET, те, кому нужно запускать код ближе к SQLite, но при этом совместимы с netstandard
(.net Framework, .net core и т. д.), я создал 100% бесплатный проект с открытым исходным кодом под названием SQLNado (для "не ADO"), доступный на github здесь:
https://github.com/smourier/SQLNado
Примечание: на сегодняшний день он не доступен как nuget, но как отдельный файл.cs, поэтому его довольно удобно использовать в любом типе проекта C#.
http://www.devart.com/dotconnect/sqlite/
dotConnect для SQLite - это расширенный поставщик данных для SQLite, основанный на технологии ADO.NET и представляющий законченное решение для разработки приложений баз данных на основе SQLite. Как часть инфраструктуры разработки приложений Devart, dotConnect для SQLite предлагает как высокопроизводительное встроенное подключение к базе данных SQLite, так и ряд инновационных инструментов и технологий разработки.
dotConnect для SQLite представляет новые подходы для разработки архитектуры приложений, повышает производительность и использует реализацию приложений баз данных.
Я использую стандартную версию, она отлично работает:)
Версия 1.2 Monotouch включает в себя поддержку System.Data. Вы можете найти более подробную информацию здесь: http://monotouch.net/Documentation/System.Data
Но в основном это позволяет вам использовать обычные шаблоны ADO .NET с sqlite.
Баскетбольная оболочка функций, предоставляемых библиотекой sqlite. Последняя версия поддерживает функции, предоставляемые библиотекой sqlite 3.7.10