التعلم عن LINQ




linq-to-sql linq-to-entities (7)

نظرة عامة

أحد الأشياء التي سألتها كثيرًا عن هذا الموقع هي LINQ . الأسئلة التي طرحتها كانت واسعة ومتنوعة وغالبا ما لا يكون لها سياق كثير وراءها. لذا في محاولة لتوحيد المعرفة التي اكتسبتها على Linq ، إنني أطرح هذا السؤال بهدف الحفاظ عليه وتحديثه بمعلومات إضافية بينما أستمر في التعلم عن LINQ.

آمل أيضا أن يثبت أنه مورد مفيد لغيرهم من الناس الراغبين في التعلم عن LINQ.

ما هو LINQ؟

من LINQ :

يعتبر مشروع LINQ هو الاسم الرمزي لمجموعة من الملحقات في .NET Framework والتي تشمل الاستعلام المدمج في اللغة ، وتعيين ، وتحويل العمليات. ويمتد C # و Visual Basic مع بناء جملة اللغة الأم للاستعلامات ويوفر مكتبات فئة للاستفادة من هذه القدرات.

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

ما هي نكهات LINQ؟

يوجد حاليًا عدد قليل من موفري LINQ الذين توفرهم Microsoft:

هناك عدد غير قليل من الآخرين ، كثير منها مذكورة here .

ما هي المنافع؟

  • طريقة موحدة للاستعلام عن datasources متعددة
  • تجميع وقت سلامة الاستعلامات
  • الطريقة المثلى لأداء العمليات القائمة على مجموعة في كائنات الذاكرة
  • القدرة على تصحيح الاستعلامات

إذن ماذا يمكنني أن أفعل مع LINQ؟

يوفر Chook طريقة لإخراج ملفات CSV
يوضح Jeff كيفية إزالة التكرارات من مصفوفة
يحصل Bob على قائمة مرتبة مميزة من قائمة بيانات
يوضح Marxidad كيفية فرز صفيف
يحصل دانا على مساعدة في تنفيذ تصنيف سريع باستخدام Linq

من أين أبدا؟

فيما يلي ملخص لروابط من سؤال GateKiller :
يقدم سكوت غوثري مقدمة للينق على مدونته
نظرة عامة على LINQ على MSDN

يقترح ChrisAnnODell التحقق من:

ما الذي أحتاجه لاستخدام LINQ؟

يتوفر Linq حالياً في VB.Net 9.0 و C # 3.0 لذا ستحتاج إلى Visual Studio 2008 أو أكثر للحصول على الفوائد الكاملة. (يمكنك دومًا كتابة التعليمات البرمجية في المفكرة وتجميعها باستخدام MSBuild)

هناك أيضًا أداة تُسمى LinqBridge والتي ستسمح لك بتشغيل Linq مثل استعلامات C # 2.0.

نصائح وحيل باستخدام LINQ

هذا السؤال لديه بعض الطرق الصعبة لاستخدام LINQ

https://code.i-harness.com


بعض نصائح LINQ:

  • تطبيق المرشحات قبل الانضمام لتحسين أداء الاستعلام
  • تصفية استعلامات LINQ باستخدام مقارنة مرجع الكائن
  • تطبيق المجاميع على مجموعات فارغة في LINQ لاستعلامات SQL
  • تأخير تحميل خاصية في LINQ إلى SQL
  • استخدم دوال القيمة الجدولية مع التحميل الجاهز قيد التشغيل
  • ضع الصلات بالترتيب الصحيح في استعلام LINQ إلى كائنات
  • قم بإنشاء استعلام LINQ داخل حلقة

http://www.aspnetpro.com/articles/2009/04/asp200904zh_f/asp200904zh_f.asp


IMHO ، فائدة مهملة ، ولكنها مهمة ، هي كفاءة التشفير في LINQ ، على سبيل المثال كم يمكن تحقيقه باستخدام القليل من الكود. أنا شخصيا العثور على صيغة الاستعلام سهلة القراءة والفهم.


أذكر LINQ إلى الكيانات لأن ADO.NET Entity Framework سيكون وحدة .NET مهمة.


أعتقد أن الإجابة على "ما هي نكهات LINQ هناك؟" غير كاملة. بادئ ذي بدء ، يمكنك إنشاء "نكهة" الخاصة بك. نعم ، إنها مهمة متقدمة ، ولكن هناك الكثير من تطبيقات LINQ المختلفة الآن.

فيما يلي قائمة بموفري LINQ الحاليين (بالإضافة إلى بعض الموارد الإضافية على تعلم LINQ) على مدونة Charlie Calvert: Links to LINQ .

وأيضا هناك سلسلة ممتازة من التدوينات التي كتبها Matt Warren حول كيفية إنشاء مزود LINQ الخاص بك: LINQ: بناء سلسلة موفري IQUeryable



سنتي 2 ، اقرأ فصول "11 تعبيرات Query و LINQ to Objects" و "12 LINQ ما وراء المجموعات" في كتاب "C # in Depth" لفهم كيفية عمل LINQ.


لممارسة لينك

إذا كنت ترغب في ممارسة بعض التمارين على LINQ مع التمارين والأجوبة ، من السهل إعدادها ، وفي رأيي ، رائع:

https://github.com/walkhard/linq-exercises

تنزيل من git ، مفتوح في Visual Studio. مهمتك هي أن تجتاز الاختبارات.

[الإفصاح: تعلمت بعض linq منه وأنا أساهم في المشروع لذلك نعم أعتقد أنها طريقة رائعة وسريعة وفعالة للتعلم.]





linq-to-objects