سؤال في تصميم asp mvc:عرض واحد لأنواع بيانات متعددة

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

  •  18-09-2019
  •  | 
  •  

سؤال

في قاعدة البيانات الخاصة بي، ربما يكون هناك عشرات الجداول التي تمثل أنواع البحث (جميعها تحتوي على أعمدة المعرف والاسم - لا، يجب أن تظل كجداول منفصلة، ​​ولن يتم تطبيعها في جدول واحد).أقوم بإنشاء تطبيق إداري، حيث أريد أن يتمكن المسؤول من إضافة/تحرير/حذف/إدراج جميع عمليات البحث هذه.أعلم أنه يمكنني إعادة استخدام النموذج، ولكن هل هناك طريقة أكثر فعالية بالنسبة لي لكتابة هذا في تطبيق asp mvc 2، بخلاف كتابة 3 طرق عرض ووحدة تحكم واحدة لكل نوع بحث مما يؤدي إلى 48 عرضًا و12 وحدة تحكم؟

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

المحلول

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

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

نصائح أخرى

ماذا عن رسم خرائط ORM الأكثر تقدمًا والذي يجمع كل هذه العناصر في كيان واحد؟

سأفعل هذا مع وحدة تحكم واحدة وإجراء/عرض لكل عملية CRUD (1x4).متى وإذا تغير المخطط على جدول بحث واحد أو أكثر، فسأتعامل معه بعد ذلك.بخلاف ذلك، فكر في العمل المطلوب إذا قمت بإضافة عمود إلى كل جدول من الجداول:سيكون عليك تحديث 48x12 أو أي ملفات أخرى.

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

ستستخدم طريقة العرض "إنشاء" بالمثل اسم الجدول القادم من النموذج المنشور لمعرفة الجدول الذي سيتم تحديثه بالبيانات المنشورة.

فكر في استخدام قوالب T4 (مثال لائق) لبناء كل شيء.يجب أن تكون قادرًا على إنشاء ترميز لوحدات التحكم وطرق العرض بناءً على كل نموذج.

آسف، إجابتي هي أن أتبع 48 مشاهدة و12 وحدة تحكم...قم بإعداد مولد الكود بحيث إذا قمت بإضافة المزيد من أنواع البحث، فكل ما عليك فعله هو إعادة تشغيل الكود، ويتم إعداد ذراع الرافعة ووحدات التحكم وطرق العرض.

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