فشل EF6 في بناء نموذج لتقسيم الجدول / مفتاح الأساس الأساسي + الفئة الأساسية؟

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

سؤال

المشكلة

أحاول مشاركة جدول كبير (200 حقول 200 +) حوالي 7 كيانات باستخدام تقسيم الجدول حسب سؤالي السابق .

EF6 يتطلب خصائص التنقل ليس فقط من النموذج الأساسي إلى طرازات الطفل، ولكن بين جميع نماذج الطفل (التي تمتص).

الحل اليدوي

يمكن القيام بذلك يدويا:

giveacodicetagpre.

مع تعيينات بطلاقة:

giveacodicetagpre.

هذا يعمل. لكنه لن يؤدي ذلك بشكل جيد مع 7+ نماذج.

محاولة لتحسين رقم 1

أود تحسينها من خلال الميراث + المبدأ الجاف:

giveacodicetagpre.

ولكن هذا فشل في الطلب الأول مع "يحتوي التسلسل على أكثر من عنصر مطابق واحد":

giveacodicetagpre.

محاولة لتحسين رقم 2

اعتقدت أنني أستطيع أن أعلن لهم مجردة، لذلك يضطر المبرمجون على الأقل إلى تنفيذ الأعضاء الصحيحين (لا يزال تمتص إعادة الإعلان عن كل فئة مشتقة):

giveacodicetagpre.

ولكن هذا فشل عند نفس الخطأ. هاه؟؟ تعد تعريفات الفصل متطابقة كنسخة عمل إلا أنها تم إعلانها "تجاوز" بدلا من "الظاهري". يبدو الأمر كما لو أن E / F هو الفهرسة على propertyinfos أو شيء ما دون مراعاة خصائص propertyinfo.refledtype

محاولة لتحسين رقم 3

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

giveacodicetagpre.

هاه؟

هل هذا خطأ في E / F، أنه يكافح لعلاج الخصائص على الفئة الأساسية مماثلة لتلك الموجودة على الفئات المشتقة؟

اعتذار التفسير الطويل الرياح، إنه ملخص التحقيق الكامل لهذا الصباح.

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

المحلول

في النهاية قررت تبني الحل اليدوي لأنني لم أستطع الحصول على أي من محاولات التحسين للعمل.

الكود والنماذج ليست أنيقة، ولكن في نهاية اليوم، فإنه يعمل موافق.لقد قمت بتنفيذ النمط في 3 مجالات وأداء كما هو مطلوب، في المجال وفي طبقة SQL.

لتخفيف الألم وتزويد المطورين بطريقة متسقة للعمل مع هذا النمط، أنشأت هذه الواجهة لفرض كل العلاقات:

giveacodicetagpre.

لذلك كل من النماذج تقاسم المفتاح الأساسي له هذه الخصائص (القليل المزعج):

giveacodicetagpre.

وتكوينها عبر API بطلاقة على النحو التالي (بت غير مؤلم):

giveacodicetagpre.

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