Существует ли оболочка .NET/C# для SQLite?[закрыто]
Вопрос
Я бы хотел использовать SQLite из C#.Net, но не могу найти подходящую библиотеку.Есть ли такой?Официальный?Есть ли другие способы использования SQLite, кроме оболочки?
Решение
От 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
- Система.Данные.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, Роберт Симпсон, выразил одобрение и имеет привилегии по новым ископаемым хранилищам.Команда разработки SQLite намерена поддерживать System.data.sqlite двигаться вперед.
Исторические версии, а также оригинальные форумы поддержки, все еще могут быть найдены в http://sqlite.phxsoftware.com, хотя с апреля 2010 года не было никаких обновлений в этой версии.
Полный список функций можно найти по адресу на их вики.Основные моменты включают в себя
- Поддержка АДО.NET 2.0
- Полная поддержка Entity Framework
- Полная поддержка моно
- Поддержка Visual Studio 2005/2008 во время разработки
- Компактная платформа, поддержка C/C++
Выпущенные библиотеки DLL можно загрузить непосредственно с сайта сайт.
Я бы определенно пошел с Система.Данные.SQLite (как уже упоминалось: http://sqlite.phxsoftware.com/)
Он совместим с ADO.NET (System.Data.*) и скомпилирован в одну DLL.Нет sqlite3.dll — поскольку код SQLite на языке C встроен в System.Data.SQLite.dll.Немного управляемого волшебства C++.
sqlite-сеть — это минимальная библиотека с открытым исходным кодом, позволяющая приложениям .NET и Mono хранить данные в Базы данных SQLite 3.Более подробная информация на вики-страница.
Он написан на C# и предназначен для простой компиляции с вашими проектами.Первоначально он был разработан для работы с MonoTouch на iPhone, но затем вырос для работы на всех платформах (Mono для Android, .NET, Silverlight, WP7, WinRT, Azure и т. д.).
Он доступен как Пакет Nuget, где это второй по популярности пакет SQLite: по состоянию на 2014 год его загрузили более 60 000 раз.
sqlite-net был разработан как быстрый и удобный уровень базы данных.Его конструкция вытекает из следующих целей:
- Очень легко интегрируется с существующими проектами и проектами MonoTouch.
- Тонкая оболочка над SQLite должна быть быстрой и эффективной.(Библиотека не должна быть узким местом производительности ваших запросов.)
- Очень простые методы для безопасного выполнения операций и запросов CRUD (с использованием параметров) и для получения результатов этих запросов строго типизированным способом.
- Работает с вашей моделью данных, не заставляя вас менять классы.(Содержит небольшой слой ORM, управляемый отражением.)
- 0, кроме скомпилированной формы библиотеки sqlite2.
К нецелям относятся:
- Нет реализация ADO.NET.Это не полноценный драйвер SQLite.Если вам это нужно, используйте System.Data.SQLite.
Mono поставляется с оберткой. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 дает код для переноса фактической dll SQLite ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip нашел на странице загрузки http://www.sqlite.org/download.html/ ) в .net-дружественной форме.Он работает в Linux или Windows.
Кажется, это самый тонкий из всех миров, сводящий к минимуму вашу зависимость от сторонних библиотек.Если бы мне пришлось делать этот проект с нуля, я бы сделал это именно так.
Microsoft.Data.Sqlite
Microsoft теперь предоставляет Microsoft.Data.Sqlite как собственное решение SQLite для .NET, которое предоставляется как часть ASP.NET Core.Лицензия – это Лицензия Apache, версия 2.0.
* Отказ от ответственности:На самом деле я еще не пробовал использовать это сам, но в Microsoft Docs есть некоторая документация. здесь за его использование с .NET Core и UWP.
Для таких, как я, которым не нужен или не нужен ADO.NET, для тех, кому нужно запускать код, близкий к SQLite, но при этом совместимый с netstandard
(.net framework, .net core и т. д.), я создал 100% бесплатный проект с открытым исходным кодом под названием SQLНадо (для «Not ADO») доступно на github здесь:
https://github.com/smourier/SQLNado
Он доступен в виде nuget здесь https://www.nuget.org/packages/SqlNado но также доступен в виде одного файла .cs, поэтому его вполне удобно использовать в любом типе проекта C#.
Он поддерживает все функции SQLite при использовании команд SQL, а также поддерживает большинство функций SQLite через .NET:
- Автоматическое сопоставление классов с таблицами (Сохранить, Удалить, Загрузить, LoadAll, LoadByPrimaryKey, LoadByForeignKey и т. д.)
- Автоматическая синхронизация схемы (таблиц, столбцов) между классами и существующей таблицей.
- Разработан для потокобезопасных операций.
- Где поддерживаются выражения .NET и OrderBy LINQ/IQueryable (работа в этой области все еще ведется), а также с поддержкой сортировки
- Схема базы данных SQLite (таблицы, столбцы и т. д.), доступная для .NET.
- Пользовательские функции SQLite могут быть написаны на .NET.
- Инкрементальный ввод-вывод BLOB-объектов SQLite представлен как поток .NET, чтобы избежать высокого потребления памяти.
- Поддержка параметров сортировки SQLite, включая возможность добавления пользовательских параметров сортировки с использованием кода .NET.
- Поддержка системы полнотекстового поиска SQLite (FTS3), включая возможность добавления пользовательских токенизаторов FTS3 с использованием кода .NET (например, локализованных стоп-слов).Я не верю, что какие-либо другие оболочки .NET делают это.
- Автоматическая поддержка Windows «winsqlite3.dll» (только в последних версиях Windows) для избегайте доставки любых двоичных зависимостей файл.Это работает и в веб-приложениях Azure!.
Версия 1.2 Monotouch включает поддержку System.Data.Более подробную информацию вы можете найти здесь:http://monotouch.net/Documentation/System.Data
Но по сути он позволяет использовать обычные шаблоны ADO .NET с sqlite.
http://www.devart.com/dotconnect/sqlite/
dotConnect for SQLite — это расширенный поставщик данных для SQLite, основанный на технологии ADO.NET и представляющий комплексное решение для разработки приложений баз данных на основе SQLite.Являясь частью среды разработки приложений баз данных Devart, dotConnect for SQLite предлагает как высокопроизводительное встроенное подключение к базе данных SQLite, так и ряд инновационных инструментов и технологий разработки.
dotConnect for SQLite представляет новые подходы к проектированию архитектуры приложений, повышает производительность и улучшает реализацию приложений баз данных.
Я использую стандартную версию, все работает отлично :)
Простая оболочка функций, предоставляемых библиотекой sqlite.Последняя версия поддерживает функции, предоставленные библиотекой sqlite 3.7.10.