Чи є обгортка .NET / C # для SQLite? [зачинено]


267

Я хотів би використовувати SQLite з C # .Net, але я не можу знайти відповідну бібліотеку. Чи є такий? Офіційний? Чи є інші способи використання SQLite, ніж із обгорткою?


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 (ви можете навіть перейменувати його на На відміну від звичайних змішаних збірок, він не залежить від лінкера від .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, хоча на даний момент він здається менш зручним для користувачів і більше незавершеного виробництва порівняно з оригіналом.
mikel

5
@NathanRidley - Ви впевнені, що на 100% керовано, тому що у цій відповіді сказано, що "System.Data.SQLite - це оригінальний двигун бази даних SQLite і повний постачальник ADO.NET 2.0, все це об'єднано в єдиний змішаний режим".
logicnp

2
FYI, я спробував використовувати Microsoft Microsoft.Data.Sqlite .NET Standard Nuget пакет, але це не вдалося на кількох тестах інтеграції в бібліотеці 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
  • Компактна рамка, підтримка C / C ++

Випущені DLL-файли можна завантажити безпосередньо з сайту .


готові DLL-
файли

8

Я б неодмінно пішов із System.Data.SQLite (як згадувалося раніше: http://sqlite.phxsoftware.com/ )

Він узгоджується з ADO.NET (System.Data. *) І компілюється в єдину DLL. Немає sqlite3.dll - тому що код C SQLite вбудований в System.Data.SQLite.dll. Трохи керованої магії C ++.


посилання наразі 404
SqlACID

7

sqlite-net - це відкритий код, мінімальна бібліотека, яка дозволяє додаткам .NET і Mono зберігати дані в базах даних SQLite 3 . Більше інформації на сторінці вікі .

Він написаний на C # і призначений для простого складання у ваших проектах. Спочатку він був розроблений для роботи з 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.

Я зауважую, що більшість коментарів до 2014 року сказали System.Data.SQLite, який я намагався встановити на своєму додатку Windows Store (не працював). Sqlite-net працює.
JeeShen Lee

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.

Це здається найтоншим із усіх світів, мінімізуючи вашу залежність від сторонніх бібліотек. Якби мені довелося робити цей проект з нуля, це я б робив.


2

Microsoft.Data.Sqlite

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

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


2

Для таких, як я, які не потребують або не хочуть ADO.NET, тих, кому потрібно запустити код ближче до SQLite, але все ще сумісних з netstandard(.net Framework, .net core тощо), я створив 100% безкоштовний проект з відкритим кодом під назвою SQLNado (для "Not ADO") доступний на github тут:

https://github.com/smourier/SQLNado

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

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

  • Автоматичне відображення класу за столом (Зберегти, Видалити, Завантажити, LoadAll, LoadByPrimaryKey, LoadByForeignKey тощо)
  • Автоматична синхронізація схеми (таблиці, стовпці) між класами та існуючою таблицею
  • Призначений для безпечних потокових операцій
  • Де і підтримуються вирази OrderBy LINQ / IQueryable .NET (робота в цій області ще триває), також із підтримкою порівняння
  • Схема бази даних SQLite (таблиці, стовпці тощо), що піддається впливу .NET
  • Спеціальні функції SQLite можна записати в .NET
  • Поточний ввід / вивід BLOB SQLite виставляється як .NET Stream, щоб уникнути великого споживання пам'яті
  • Підтримка порівняння SQLite, включаючи можливість додавання спеціальних зіставлень за допомогою коду .NET
  • Підтримка повнотекстової пошукової системи SQLite (FTS3), включаючи можливість додавання спеціальних токенізаторів FTS3 за допомогою .NET-коду (наприклад, локалізованих зупинкових слів, наприклад). Я не вірю, що це роблять інші обгортки .NET.
  • Автоматична підтримка Windows 'winqlite3.dll' (лише для останніх версій Windows), щоб уникнути доставки будь-якого файлу бінарної залежності . Це працює і в веб-додатках Azure !.

0

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

Але в основному це дозволяє використовувати звичайні шаблони ADO .NET з sqlite.


0

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

dotConnect для SQLite - це вдосконалений постачальник даних для SQLite, який базується на технології ADO.NET, щоб представити повноцінне рішення для розробки додатків для баз даних на базі SQLite. Як частина основи розробки додатків баз даних Devart, dotConnect для SQLite пропонує як високопродуктивне підключення до бази даних SQLite, так і ряд інноваційних інструментів і технологій розробки.

dotConnect для SQLite представляє нові підходи до розробки архітектури додатків, підвищує продуктивність та використовує реалізацію додатків бази даних.

Я використовую стандартну версію, вона працює ідеально :)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.