تبحث عن إرشادات حول قاعدة بيانات .NET المدمجة (مثل DB4O أو Nhibernate أو RavendB)

StackOverflow https://stackoverflow.com/questions/3580510

سؤال

لدي نموذج كائن أريد تخزينه باستخدام قاعدة بيانات مضمنة. لقد كنت حتى الآن أنظر إلى DB4O و Nhibernate إلى SQLCE (W/ LINQ) و RAVENDB. سيتم استخدام هذا في تطبيق سطح المكتب C#.

الميزات الرئيسية التي أتطلع إلى الاستفادة منها هي: LINQ أو ما شابه للاستعلامات (لا يوجد SQL أو HQL) ، محرك بيانات مضمن ، POCOS ، نموذج POCO الأول ، بدون تثبيت (لا يوجد سجل أو ما شابه)

هل يمكن لأي شخص أن يقترح واحدة؟ هل الثلاثة التي أنظر إلى أفضل الخيارات؟ هل هناك خيارات أخرى؟ من الثلاثة ، هل يمكن لأي شخص أن يوصي بواحد على الآخر؟

شكرًا

هل كانت مفيدة؟

المحلول

حسنًا ، تختلف قواعد البيانات الثلاثة المقترحة تمامًا في طبيعتها. SQLCE مع Hibernate كـ RDBMS مع ORM و DB4O كقاعدة بيانات كائن و RAVENDB كقاعدة بيانات مستند. كل واحد منهم لديه نقاط قوته.

SQL CE و NHIBERNATE-COMBOالخير:

  • دعم جيد للغاية في الأدوات والمعرفة والمجتمع الكبير هناك
  • من السهل أن ترتفع إلى خوادم MS SQL
  • دعم تقارير جيد متطرف
  • قوة SQL

السيء:

  • يحتاج رسم الخرائط
  • التعيين بين OO والعالم العلائقي ليس بالأمر السهل ويمكن أن يؤدي إلى مشاكل مع النماذج المعقدة.

Ravendb

الخير:

  • لا يحتاج إلى أي تعيين
  • سهل الاستخدام
  • فهرسة قوية
  • وصول JSON & HTTP

السيء:

  • إذا لم يكن مجالك مناسبًا لنهج موجه نحو المستند ، فسيكون ذلك مؤلمًا تمامًا
  • لا يدعم ملف تعريف عميل .NET Framework (وهو ذو أهمية خاصة لأن سؤال البروتوكول الاختياري يتعلق بقواعد البيانات المضمنة)

DB4O

الخير:

  • لا يحتاج إلى أي تعيين
  • سهل الاستخدام
  • نموذج التخزين يغلق نموذج الكائن. هذا يعمل أيضا لنماذج معقدة للغاية.
  • -

السيء:

  • دعم الأدوات ضعيف.

AFAIK كل الثلاثة تدعم نهج LINQ و POCO-First. ومع ذلك ، نظرًا لأن Nhibernate & sql ce لا يزال بحاجة إلى أطنان من رسم الخرائط ، فهي ليست خالية من الاحتكاك.

أعتقد أنه إذا كان تركيزك على POCO أولاً ، أو دعم LINQ ، والاستخدام المقلوب وسهل الاستخدام ، سأحاول RavedB أو DB4O. إذا كان تركيزك على "السلامة" ، ومعرفة المجتمع ، ودعم الأدوات والإبلاغ ، فسوف أذهب مع Nhibernate و SQL CE.

نصائح أخرى

فايربيرد هي قاعدة بيانات مضمنة رائعة والتي دعمت منذ فترة طويلة جميع الميزات الحديثة لقاعدة بيانات المؤسسة:

  • Ansi SQL
  • حامض
  • الإجراءات المخزنة
  • محفزات

يمكنك الحصول على .NET مزود (آخر تحديث في 24 مايو وفقًا للموقع) ويدعم إطار الكيان و LINQ.

نرى هذا السؤال. للحصول على دعم LINQ ، تحقق من dblinq, ، أو بما أنك تنوي بالفعل استخدام Nhibernate ، يمكنك استخدام مزود LINQ الخاص بـ Nhibernate.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top