Существует ли оболочка .NET/C# для SQLite?[закрыто]

StackOverflow https://stackoverflow.com/questions/93654

  •  01-07-2019
  •  | 
  •  

Вопрос

Я бы хотел использовать 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.

Другие советы

Вот те, которые я могу найти:

Источники:

Еще теперь есть такой вариант: 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.

проект SQLiteWrapper

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top