Существует ли оболочка .NET / C # для SQLite? [закрыто]
267
Я бы хотел использовать SQLite из C # .Net, но не могу найти подходящую библиотеку. Есть один? Официальный? Есть ли другие способы использовать SQLite, кроме как с оберткой?
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. "
Это старый вопрос, но мне пришлось добавить свои 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 все заработало отлично.
Это вилка популярного адаптера 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 могут быть загружены непосредственно с сайта .
Он согласован с ADO.NET (System.Data. *) И скомпилирован в одну DLL. Нет sqlite3.dll - потому что C-код SQLite встроен в System.Data.SQLite.dll. Немного управляемой магии C ++.
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.
Я заметил, что в большинстве комментариев до 2014 года говорилось о System.Data.SQLite, который я пытался установить в своем приложении для Магазина Windows (не работало). Sqlite-net работает.
Это кажется самым тонким из всех миров, сводя к минимуму вашу зависимость от сторонних библиотек. Если бы мне пришлось делать этот проект с нуля, я бы так и сделал.
Microsoft теперь предоставляет Microsoft.Data.Sqlite в качестве первого решения SQLite для .NET, которое предоставляется как часть ASP.NET Core. Лицензия Apache License, версия 2.0 .
* Отказ от ответственности: Я на самом деле не пытался использовать это сам еще, но есть некоторая документация , представленная на Microsoft Docs здесь для использования его с .NET Ядром и UWP.
Для тех, кто, как я, которым не нужен или не нужен ADO.NET, для тех, кому нужно запускать код ближе к SQLite, но при этом он совместим с netstandard(.net framework, .net core и т. Д.), Я создал 100% бесплатный проект с открытым исходным кодом под названием SQLNado (для «не ADO») доступен на github здесь:
Он доступен здесь как 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!
dotConnect для SQLite - это расширенный поставщик данных для SQLite, основанный на технологии ADO.NET и представляющий законченное решение для разработки приложений баз данных на основе SQLite. Как часть инфраструктуры разработки приложений Devart, dotConnect для SQLite предлагает как высокопроизводительное встроенное подключение к базе данных SQLite, так и ряд инновационных инструментов и технологий разработки.
dotConnect для SQLite представляет новые подходы для разработки архитектуры приложений, повышает производительность и использует реализацию приложений баз данных.
Я использую стандартную версию, она отлично работает :)
Ответы:
С https://system.data.sqlite.org :
«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:
С их домашней страницы :
Полный список функций можно найти на их вики . Основные моменты включают
Выпущенные DLL могут быть загружены непосредственно с сайта .
источник
Я бы определенно пошел с System.Data.SQLite (как упоминалось ранее: http://sqlite.phxsoftware.com/ )
Он согласован с ADO.NET (System.Data. *) И скомпилирован в одну DLL. Нет sqlite3.dll - потому что C-код SQLite встроен в System.Data.SQLite.dll. Немного управляемой магии C ++.
источник
sqlite-net - это минимальная библиотека с открытым исходным кодом, позволяющая приложениям .NET и Mono хранить данные в базах данных SQLite 3 . Больше информации на вики-странице .
Он написан на C # и предназначен для простой компиляции с вашими проектами. Сначала он был разработан для работы с MonoTouch на iPhone, но вырос для работы на всех платформах (Mono для Android, .NET, Silverlight, WP7, WinRT, Azure и т. Д.).
Это доступно как пакет Nuget , где это 2-ой самый популярный пакет SQLite с более чем 60 000 загрузок на 2014.
sqlite-net был спроектирован как быстрый и удобный слой базы данных. Его дизайн вытекает из этих целей:
Не цели включают в себя:
источник
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.
Это кажется самым тонким из всех миров, сводя к минимуму вашу зависимость от сторонних библиотек. Если бы мне пришлось делать этот проект с нуля, я бы так и сделал.
источник
Microsoft.Data.Sqlite
Microsoft теперь предоставляет Microsoft.Data.Sqlite в качестве первого решения SQLite для .NET, которое предоставляется как часть ASP.NET Core. Лицензия Apache License, версия 2.0 .
* Отказ от ответственности: Я на самом деле не пытался использовать это сам еще, но есть некоторая документация , представленная на Microsoft Docs здесь для использования его с .NET Ядром и UWP.
источник
Для тех, кто, как я, которым не нужен или не нужен 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:
источник
Версия 1.2 Monotouch включает в себя поддержку System.Data. Вы можете найти более подробную информацию здесь: http://monotouch.net/Documentation/System.Data
Но в основном это позволяет вам использовать обычные шаблоны ADO .NET с sqlite.
источник
http://www.devart.com/dotconnect/sqlite/
dotConnect для SQLite - это расширенный поставщик данных для SQLite, основанный на технологии ADO.NET и представляющий законченное решение для разработки приложений баз данных на основе SQLite. Как часть инфраструктуры разработки приложений Devart, dotConnect для SQLite предлагает как высокопроизводительное встроенное подключение к базе данных SQLite, так и ряд инновационных инструментов и технологий разработки.
dotConnect для SQLite представляет новые подходы для разработки архитектуры приложений, повышает производительность и использует реализацию приложений баз данных.
Я использую стандартную версию, она отлично работает :)
источник
Баскетбольная оболочка функций, предоставляемых библиотекой sqlite. Последняя версия поддерживает функции, предоставляемые библиотекой sqlite 3.7.10
Проект SQLiteWrapper
источник