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

263

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

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

12 ответов

310
Лучший ответ

От 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 для загрузки.
Показать ещё 7 комментариев
33

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

Источники:

26

Здесь также есть эта опция: http://code.google.com/p/csharp-sqlite/ - полный порт 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
  • Поддержка Full Entity Framework
  • Поддержка Full Mono
  • Поддержка Visual Studio 2005/2008 Design-Time
  • Поддержка Compact Framework, C/С++

Выпущенные библиотеки DLL могут быть загружены непосредственно из сайта.

  • 0
    готовые библиотеки уже доступны
8

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

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

7

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

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

Он доступен как пакет Nuget, где он является вторым по популярности пакетом SQLite с более чем 60 000 загрузок с 2014 года.

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

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

Без цели:

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

Моно поставляется с оберткой. 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.

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

1

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

https://github.com/smourier/SQLNado

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

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

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

Microsoft.Data.Sqlite

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

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

0

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

Проект SQLiteWrapper

0

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

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

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

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

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню