"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية الاستعلام عن الكيانات الرئيسية المركبة بكفاءة في إطار الكيان؟

كيفية الاستعلام عن الكيانات الرئيسية المركبة بكفاءة في إطار الكيان؟

نشر في 2025-04-12
تصفح:321

كيان استعلام فعال مع المفاتيح الأولية المركبة في إطار الكيان

تنفيذ نفس الوظيفة التي يحتوي عليها الاستعلام البسيط () يصبح أكثر تعقيدًا عند استخدام إطار الكيان والمفاتيح الأولية المركبة. يناقش هذا المقال طرقًا مختلفة لحل هذه المشكلة:

حاول استخدام يحتوي على

لأزواج القيمة الرئيسية

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

باستخدام معالجة الذاكرة

طريقة أخرى تتمثل في استخدام Asenumerable () لاستخراج بيانات جدول قاعدة البيانات في الذاكرة وإجراء التصفية اللازمة باستخدام LINQ إلى الكائنات. ومع ذلك ، بالنسبة للجداول الكبيرة ، فإن هذا الحل غير فعال للغاية.

استخدم اثنين يحتوي على عبارات (غير صحيحة)

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

استخدم القيم المحسوبة لأحدها يحتوي على استعلام

يمكنك استخدام استعلام يحتوي على () استعلام يحتوي على القيم المحسوبة المستمدة من مكون المفتاح الأساسي المركب (على سبيل المثال ، entity.id1 * entity.id2). ومع ذلك ، فإن هذا الحل غير قابل للبحث ويؤدي إلى ضعف الأداء.

الجمع يحتوي على اتصال الذاكرة (الحل 5)

الطريقة الأكثر قابلية للتطوير هي الجمع بين واتصالات الذاكرة. تستخدم هذه الطريقة تحتوي على () استعلام لتضييق مجموعة النتائج ثم تحسينه بدقة أكثر عبر اتصالات الذاكرة.

بناء استعلامات باستخدام أو جمل (الحل 6)

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

استخدم المفصل (الحل 7)

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

How Can I Efficiently Query Entities with Composite Keys in Entity Framework?

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3