مونغو دي بي:باستخدام بنية البصل، هل يحتاج المجال/الطبقة الأساسية الخاصة بي إلى الإشارة إلى ملفات MongoDB dlls؟

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

  •  13-12-2019
  •  | 
  •  

سؤال

لدى MongoDB نوع ObjectId الخاص به والذي يستخدمه كمفتاح أساسي افتراضي.أحاول إعداد تطبيق مصمم باستخدام Onion Architecture مع MongoDB كمحرك الثبات في طبقة البنية التحتية.إذا تم تعريف فئات POCO الخاصة بي في طبقة المجال الخاصة بي ولكن استخدم نوع معرف كائن MongoDB للمفاتيح الأساسية، فهل سيجبرني ذلك على إضافة MongoDB كاعتماد على طبقة المجال الخاصة بي؟

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

المحلول

يجب ألا تحتاج إلى مرجع إلى MongoDB في أي مكان باستثناء الطبقة الخارجية.في الهندسة البصلية، يعتبر استمرار البيانات بنية تحتية.أود أن يكون MongoDB جزءًا من تطبيق المستودع الذي ينفذ واجهات المستودع المحددة في نموذج المجال.

تحتوي مستندات MongoDB على ملف _id المجال الذي يحددها بشكل فريد. انظر هنا:

ال _id قد تكون القيمة من أي نوع، بخلاف المصفوفات، طالما أنها فريدة.إذا كان مستندك يحتوي على مفتاح أساسي طبيعي غير قابل للتغيير، فنوصيك باستخدامه _id بدلاً من المعرفات التي تم إنشاؤها تلقائيًا.

لا تدع آلية المثابرة لديك تدفعك نحو الأفضل!

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