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

267

Я бы хотел использовать SQLite из C # .Net, но не могу найти подходящую библиотеку. Есть один? Официальный? Есть ли другие способы использовать SQLite, кроме как с оберткой?

ian93
источник
4
Это дубликат этого вопроса: stackoverflow.com/questions/26020/… и имеет другой ответ.
Стюарт Джонсон
2
На самом деле, я считаю, что оба принятых ответа связаны с одним и тем же проектом.
Колин

Ответы:

328

С 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.

ине
источник
33
Это старый вопрос, но мне пришлось добавить свои 0,02 доллара. System.Data.SQLite пород. Это супер изысканный, стабильный и товарного качества. Лучше всего то, что это 100% управляемый код, который был выпущен как исходный код общественного достояния.
Натан Ридли
4
Просто для последовательности, потому что люди говорят о разных вещах. В sqlite.phxsoftware.com вы указываете на sourceforge.net/projects/sqlite-dotnet2 для загрузки.
yeyeyerman
16
Эта обертка больше не разрабатывается ее первоначальным автором, и кажется, что ее взяла на себя сама SQLite. Новый сайт находится по адресу system.data.sqlite.org, хотя на данный момент он кажется менее удобным для пользователя и более незавершенным по сравнению с оригиналом.
Микель
5
@NathanRidley - Вы уверены, что все на 100% управляемо, потому что в этом ответе говорится: «System.Data.SQLite - это оригинальный механизм базы данных SQLite и полный поставщик ADO.NET 2.0, объединенные в одну сборку в смешанном режиме».
logicnp
2
К вашему сведению, я попытался использовать стандартный пакет Nuget от Microsoft.Data.Sqlite .NET, но он не удался на нескольких интеграционных тестах в библиотеке AsyncPoco Github. После перехода на System.Data.SQLite все заработало отлично.
Ли Гриссом
15

Люди из 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 могут быть загружены непосредственно с сайта .

Дэвид Шмитт
источник
готовые библиотеки уже доступны
zomf
8

Я бы определенно пошел с System.Data.SQLite (как упоминалось ранее: http://sqlite.phxsoftware.com/ )

Он согласован с ADO.NET (System.Data. *) И скомпилирован в одну DLL. Нет sqlite3.dll - потому что C-код SQLite встроен в System.Data.SQLite.dll. Немного управляемой магии C ++.

tonyz
источник
ссылка в настоящее время 404
SqlACID
7

sqlite-net - это минимальная библиотека с открытым исходным кодом, позволяющая приложениям .NET и Mono хранить данные в базах данных SQLite 3 . Больше информации на вики-странице .

Он написан на C # и предназначен для простой компиляции с вашими проектами. Сначала он был разработан для работы с MonoTouch на iPhone, но вырос для работы на всех платформах (Mono для Android, .NET, Silverlight, WP7, WinRT, Azure и т. Д.).

Это доступно как пакет Nuget , где это 2-ой самый популярный пакет SQLite с более чем 60 000 загрузок на 2014.

sqlite-net был спроектирован как быстрый и удобный слой базы данных. Его дизайн вытекает из этих целей:

  • Очень легко интегрировать с существующими проектами и с проектами MonoTouch.
  • Тонкая оболочка над SQLite и должна быть быстрой и эффективной. (Библиотека не должна быть узким местом производительности ваших запросов.)
  • Очень простые методы безопасного выполнения CRUD-операций и запросов (с использованием параметров) и получения результатов этого запроса строго типизированным способом.
  • Работает с вашей моделью данных, не заставляя вас менять классы. (Содержит небольшой слой ORM, управляемый отражением.)
  • 0 зависимостей помимо скомпилированной формы библиотеки sqlite2.

Не цели включают в себя:

  • Не реализация ADO.NET. Это не полный драйвер SQLite. Если вам это нужно, используйте System.Data.SQLite.
dodgy_coder
источник
Я заметил, что в большинстве комментариев до 2014 года говорилось о System.Data.SQLite, который я пытался установить в своем приложении для Магазина Windows (не работало). Sqlite-net работает.
JeeShen Lee
2

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.

Это кажется самым тонким из всех миров, сводя к минимуму вашу зависимость от сторонних библиотек. Если бы мне пришлось делать этот проект с нуля, я бы так и сделал.

Ограниченное искупление
источник
2

Microsoft.Data.Sqlite

Microsoft теперь предоставляет Microsoft.Data.Sqlite в качестве первого решения SQLite для .NET, которое предоставляется как часть ASP.NET Core. Лицензия Apache License, версия 2.0 .

* Отказ от ответственности: Я на самом деле не пытался использовать это сам еще, но есть некоторая документация , представленная на Microsoft Docs здесь для использования его с .NET Ядром и UWP.

Кристофер Кайл Хортон
источник
2

Для тех, кто, как я, которым не нужен или не нужен ADO.NET, для тех, кому нужно запускать код ближе к SQLite, но при этом он совместим с netstandard(.net framework, .net core и т. Д.), Я создал 100% бесплатный проект с открытым исходным кодом под названием SQLNado (для «не ADO») доступен на github здесь:

https://github.com/smourier/SQLNado

Он доступен здесь как nuget https://www.nuget.org/packages/SqlNado, но также доступен в виде одного файла .cs, поэтому его довольно практично использовать в любом типе проекта C #.

Он поддерживает все функции SQLite при использовании команд SQL, а также поддерживает большинство функций SQLite через .NET:

  • Автоматическое сопоставление классов и таблиц (Сохранить, Удалить, Загрузить, LoadAll, LoadByPrimaryKey, LoadByForeignKey и т. Д.)
  • Автоматическая синхронизация схемы (таблицы, столбцы) между классами и существующей таблицей
  • Предназначен для поточно-ориентированных операций
  • Где и OrderBy поддерживаются выражения LINQ / IQueryable .NET (работа в этой области все еще продолжается), также с поддержкой сортировки
  • Схема базы данных SQLite (таблицы, столбцы и т. Д.), Доступная для .NET
  • Пользовательские функции SQLite могут быть написаны в .NET
  • Инкрементальный ввод-вывод больших двоичных объектов SQLite отображается как поток .NET, чтобы избежать высокого потребления памяти.
  • Поддержка сортировки SQLite, включая возможность добавления пользовательских сортировок с использованием кода .NET
  • Поддержка механизма полнотекстового поиска SQLite (FTS3), включая возможность добавления пользовательских токенизаторов FTS3 с использованием кода .NET (например, локализованных стоп-слов). Я не верю, что другие оболочки .NET делают это.
  • Автоматическая поддержка Windows 'winsqlite3.dll' (только в последних версиях Windows), чтобы избежать доставки любого двоичного файла зависимостей . Это работает и в веб-приложениях Azure!
Саймон Мурье
источник
0

Версия 1.2 Monotouch включает в себя поддержку System.Data. Вы можете найти более подробную информацию здесь: http://monotouch.net/Documentation/System.Data

Но в основном это позволяет вам использовать обычные шаблоны ADO .NET с sqlite.

user203709
источник
0

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

dotConnect для SQLite - это расширенный поставщик данных для SQLite, основанный на технологии ADO.NET и представляющий законченное решение для разработки приложений баз данных на основе SQLite. Как часть инфраструктуры разработки приложений Devart, dotConnect для SQLite предлагает как высокопроизводительное встроенное подключение к базе данных SQLite, так и ряд инновационных инструментов и технологий разработки.

dotConnect для SQLite представляет новые подходы для разработки архитектуры приложений, повышает производительность и использует реализацию приложений баз данных.

Я использую стандартную версию, она отлично работает :)

Антонио
источник
0

Баскетбольная оболочка функций, предоставляемых библиотекой sqlite. Последняя версия поддерживает функции, предоставляемые библиотекой sqlite 3.7.10

Проект SQLiteWrapper

Eminem
источник