هل يجب أن أقلق بشأن مسار الترقية لـ LINQ (لغة الاستعلام)

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

  •  03-07-2019
  •  | 
  •  

سؤال

لقد بدأت في استخدام LINQ كلغة استعلام حقيقية في التعليمات البرمجية للمساعدة في تحسين إمكانية القراءة.حتى وقت قريب كنت خائفًا من لمس LINQ بسبب انتقال فريق LINQ إلى SQL ضمن فريق Entity Framework (محاولة تجاهل تلك المحادثة هنا) - هل ستكون لغة الاستعلام LINQ رهانًا آمنًا للمضي قدمًا (مثل أي شيء بهذه السرعة صناعة النقل) ؟

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

المحلول

ومن الجدير التمييز بين "LINQ" و "مزود LINQ معين". أعتقد أنه من الأسلم أن نقول إن LINQ نفسه هو البقاء هنا - وانها <م> هائل مفيد لمعالجة مجموعة في عملية عبر LINQ إلى كائنات

.

وأما بالنسبة للوالتي سوف مزود LINQ "الفوز" (إن وجدت) - وهذا هو الرهان الصعب استدعاء

وأود أن <م> بالتأكيد تعلم أساسيات LINQ نفسها على الرغم - وLINQ إلى XML هو API XML جميل فضلا

نصائح أخرى

كما قال جون، من المهم جدًا التمييز بين موفري خدمات LINQ.على سبيل المثال

  • LINQ للكائنات:يعتمد هذا على IEnumerable<T> وهو متأصل جدًا في BCL لدرجة أنني أجد صعوبة كبيرة في الذهاب إلى أي مكان
  • لينك إلى SQL:لا أستخدم هذا تقريبًا بقدر ما أستخدم LINQ ولكني أعلم أنه يحظى بمتابعة جيدة ويبدو أن الناس يحبونه.

تنبيه قضائي:لقد عملت على LINQ لذا فأنا متحيز جدًا هنا.

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

var query = from it in someCollection select it.SomeProperty;

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

أنا شخصياً أميل أكثر نحو طريقة lambda/extension Synatx ولكن الكود الناتج لا يختلف حقًا.

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