سؤال

أود نوعًا ما استخدام 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."

حتى أنه يدعم مونو.

نصائح أخرى

فيما يلي ما يمكنني العثور عليه:

مصادر:

يوجد الآن أيضًا هذا الخيار: 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 Development الحفاظ على System.Data.Sqlite للمضي قدمًا.

يمكن العثور على الإصدارات التاريخية ، وكذلك منتديات الدعم الأصلية ، في http://sqlite.phxsoftware.com, ، على الرغم من عدم وجود تحديثات لهذا الإصدار منذ أبريل 2010.

يمكن العثور على القائمة الكاملة للميزات على على الويكي الخاصة بهم.تشمل النقاط البارزة

  • دعم أدو.نت 2.0
  • الدعم الكامل لإطار الكيان
  • دعم أحادي كامل
  • دعم Visual Studio 2005/2008 وقت التصميم
  • إطار عمل مدمج، دعم C/C++

يمكن تنزيل ملفات 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، وما إلى ذلك).

وهي متوفرة ك حزمة نوجيت, ، حيث تعد ثاني أكثر حزم SQLite شيوعًا مع أكثر من 60.000 عملية تنزيل اعتبارًا من عام 2014.

تم تصميم sqlite-net كطبقة قاعدة بيانات سريعة ومريحة.ويتبع تصميمها هذه الأهداف:

  • من السهل جدًا التكامل مع المشاريع الحالية ومع مشاريع MonoTouch.
  • غلاف رقيق فوق SQLite ويجب أن يكون سريعًا وفعالًا.(لا ينبغي أن تكون المكتبة بمثابة عنق الزجاجة في أداء استعلاماتك.)
  • طرق بسيطة جدًا لتنفيذ عمليات واستعلامات CRUD بأمان (باستخدام المعلمات) ولاسترجاع نتائج تلك الاستعلامات بطريقة مكتوبة بقوة.
  • يعمل مع نموذج البيانات الخاص بك دون إجبارك على تغيير فئاتك.(يحتوي على طبقة ORM صغيرة تعتمد على الانعكاس.)
  • 0 تبعيات بصرف النظر عن النموذج المترجم لمكتبة sqlite2.

تشمل غير الأهداف:

  • لا تنفيذ ADO.NET.هذا ليس برنامج تشغيل SQLite كاملاً.إذا كنت بحاجة إلى ذلك، استخدم System.Data.SQLite.

يأتي مونو مع غلاف. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 يعطي رمزًا لتغليف ملف SQLite dll الفعلي ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip وجدت على صفحة التحميل http://www.sqlite.org/download.html/ ) بطريقة ودية .net.يعمل على نظام التشغيل Linux أو Windows.

يبدو هذا هو الأضعف بين جميع العوالم، مما يقلل من اعتمادك على مكتبات الطرف الثالث.إذا اضطررت إلى القيام بهذا المشروع من الصفر، فهذه هي الطريقة التي سأفعلها بها.

Microsoft.Data.Sqlite

توفر مايكروسوفت الآن Microsoft.Data.Sqlite كحل SQLite للطرف الأول لـ .NET، والذي يتم توفيره كجزء من ASP.NET Core.الترخيص هو ترخيص أباتشي، الإصدار 2.0.

* تنصل:لم أحاول بالفعل استخدام هذا بنفسي حتى الآن، ولكن هناك بعض الوثائق المتوفرة في Microsoft Docs هنا لاستخدامه مع .NET Core وUWP.

بالنسبة لأولئك مثلي الذين لا يحتاجون أو لا يريدون ADO.NET، أولئك الذين يحتاجون إلى تشغيل تعليمات برمجية أقرب إلى SQLite، ولكن لا يزالون متوافقين مع netstandard (.net Framework، .net core، وما إلى ذلك)، لقد قمت ببناء مشروع مجاني مفتوح المصدر بنسبة 100% يسمى SQLNado (لـ "Not ADO") متاح على جيثب هنا:

https://github.com/smourier/SQLNado

إنه متاح ك nuget هنا https://www.nuget.org/packages/SqlNado ولكنه متاح أيضًا كملف .cs واحد، لذلك يعد استخدامه عمليًا في أي نوع من مشاريع C#.

وهو يدعم جميع ميزات SQLite عند استخدام أوامر SQL، ويدعم أيضًا معظم ميزات SQLite من خلال .NET:

  • التعيين التلقائي للفئة إلى الجدول (حفظ، حذف، تحميل، LoadAll، LoadByPrimaryKey، LoadByForeignKey، وما إلى ذلك)
  • المزامنة التلقائية للمخطط (الجداول والأعمدة) بين الفئات والجدول الموجود
  • مصممة لعمليات آمنة للخيط
  • يتم دعم تعبيرات Where وOrderBy LINQ/IQueryable .NET (لا يزال العمل قيد التقدم في هذا المجال)، بالإضافة إلى دعم الترتيب
  • مخطط قاعدة بيانات SQLite (الجداول والأعمدة وما إلى ذلك) معرض لـ .NET
  • يمكن كتابة وظائف SQLite المخصصة في .NET
  • يتم عرض إدخال/إخراج BLOB التزايدي لـ SQLite كتدفق .NET لتجنب الاستهلاك العالي للذاكرة
  • دعم ترتيب SQLite، بما في ذلك إمكانية إضافة عمليات ترتيب مخصصة باستخدام كود .NET
  • دعم محرك بحث النص الكامل SQLite (FTS3)، بما في ذلك إمكانية إضافة رموز FTS3 مخصصة باستخدام كود .NET (مثل كلمات التوقف المترجمة على سبيل المثال).لا أعتقد أن أي مغلفات .NET أخرى تفعل ذلك.
  • الدعم التلقائي لنظام التشغيل Windows 'winsqlite3.dll' (فقط في الإصدارات الأخيرة من Windows). تجنب شحن أي تبعية ثنائية ملف.يعمل هذا في تطبيقات Azure Web أيضًا!.

يتضمن الإصدار 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