البرمجة

تحسين استعلامات ASP.NET MVC لاسترجاع العطلات بشكل فعّال

في هذا الشيفرة البرمجية، يظهر خطأ في استخدام عامل التشغيل ‘&&’ بين تعابير من نوع ‘System.Collections.Generic.IEnumerable‘. الخطأ يشير إلى أنه لا يمكن تطبيق عامل ‘&&’ على هذين النوعين من التعابير.

الخطأ يحدث في سطر:

csharp
h.HOLIDAY_NAME.Except("Sunday") && h.HOLIDAY_NAME.Except("Saturday")

يبدو أنك تحاول استخدام عامل ‘&&’ بين نتائج استدعاء الدالة Except على HOLIDAY_NAME، ولكن هذا لا يعمل بالطريقة التي تتوقعها.

دعنا نقم بتحليل الشيفرة لفهم الخطأ وتصحيحه. تظهر أنك تريد استرجاع العطلات (HOLIDAY_MASTER) حيث لا يكون اسم العطلة يحتوي على “Sunday” أو “Saturday”، وكذلك يكون HOLIDAY_DEL يساوي 0، وREGION_ID يساوي RegionID.

لحل هذا الخطأ، يمكنك استخدام دالة Any لفحص ما إذا كان هناك أي عنصر يحتوي على “Sunday” أو “Saturday”، وبالتالي تغيير الشرط كالتالي:

csharp
hdms = db.HOLIDAY_MASTER .ToList() .Where(h => !h.HOLIDAY_NAME.Contains("Sunday") && !h.HOLIDAY_NAME.Contains("Saturday") && h.HOLIDAY_DEL.Equals(0) && h.REGION_ID.Equals(RegionID)) .OrderBy(h => h.DOH);

في هذا التعديل، تم استخدام Contains بدلاً من Except لفحص ما إذا كان اسم العطلة يحتوي على “Sunday” أو “Saturday”. يرجى تجربة هذا التعديل والتحقق مما إذا كان يلبي احتياجات الشيفرة البرمجية الخاصة بك.

المزيد من المعلومات

في هذا السياق، يتم استخدام لغة البرمجة C# لتطوير تطبيق ويب باستخدام ASP.NET MVC framework. يظهر أن الهدف من الشيفرة البرمجية هو استرجاع العطلات (HOLIDAY_MASTER) من قاعدة البيانات بناءً على مجموعة من الشروط.

لفهم الشيفرة بشكل أفضل، نلقي نظرة على بعض النقاط الرئيسية:

  1. public ActionResult HolidayIndex(): هذه الدالة هي جزء من تحكم العرض (Controller) وتقوم بإرجاع نتيجة العرض.

  2. IEnumerable hdms = null;: يتم إنشاء متغير hdms لتخزين نتائج الاستعلام عن قاعدة البيانات.

  3. db.HOLIDAY_MASTER.ToList(): يتم الوصول إلى قاعدة البيانات لاسترجاع جميع العطلات كقائمة.

  4. .Where(h => !h.HOLIDAY_NAME.Contains("Sunday") && !h.HOLIDAY_NAME.Contains("Saturday") && h.HOLIDAY_DEL.Equals(0) && h.REGION_ID.Equals(RegionID)): تُطبق شرط على العطلات المسترجعة حيث يتم استبعاد العطلات التي تحتوي على “Sunday” أو “Saturday” في اسمها، ويكون HOLIDAY_DEL يساوي 0، ويكون REGION_ID يساوي RegionID.

  5. .OrderBy(h => h.DOH): يتم ترتيب العطلات حسب تاريخها.

  6. return PartialView("HolidayIndex", hdms);: يتم إرجاع نتيجة العرض باستخدام العرض الفرعي “HolidayIndex” وتمرير قائمة العطلات كنموذج.

باستبعاد التعديل الذي قمت به في الشرط، يبدو أن الشيفرة تقوم بعمل جيد في استرجاع العطلات وتنقيتها وفقًا للشروط المحددة. يرجى تجربة التعديل المقترح والتحقق من عدم وجود أخطاء أخرى في تنفيذ البرنامج.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!