هل يجب أن أعيد ilist أو قائمة إلى وحدة التحكم في MVC؟

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

  •  08-07-2019
  •  | 
  •  

سؤال

ما هو الفرق في وحدة التحكم التي تحصل على العودة مع إعادة صياغة لتقديم القائمة؟

في linq datacontext:

public IList<Response> GetResponses(int ID)
    {
        var responses = from r in this.Responses where r.ID == ID orderby r.Date select r;

        return responses.ToList();
    }

أو

 public List<Response> GetResponses(int ID)
    {
        var responses = from r in this.Responses where r.ID == ID orderby r.Date select r;

        return responses.ToList();
    }
هل كانت مفيدة؟

المحلول

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

إذا كانت وحدة التحكم تحتاج فقط إلى IEnumerable<Response> ثم يجب أن تفكر في جعل نوع العودة من GetResponses.

نصائح أخرى

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

النظر في إعادة صفيف ، فكر في قبول Ienumerable كمعلمة.

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