تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
LINQ to Everything
#1
السلام عليكم ورحمه الله وبركاته

أخوتي وأخواتي أعضاء هذا المنتدى الرائع أريد أن أقدم لكم اليوم درس متنوع في تقنية الـ LINQ, هذا الدرس ما هو إلا استعراض وتطبيق إمكانيات الإستعلام بواسطة هذه التقنية للوصول إلى الحلم LINQ to Everything, طبعا سأفترض أن الشخص القارىء قد تعرف مسبقا ولو الشيء اليسير عن هذه التقنية, لأنني ليس في صدد شرح هذه التقنية.

من المعروف لدينا وبعد ظهور الإصدار 3.0 متضمنا واحدة من أعظم التقنيات في مجال التعامل مع البيانات والاستعلام فيها, وكما نعلم أن الدوت نت في ذاك الإصدار وفر 3 أنواع من البيانات للاستعلام فيها سأحاول استعراض مثال لكل واحد منها, ومن ثم سنسعى للوصول إلى حلمنا المنشود.

1- LINQ to Objects

طبعا في هذا النوع يتم الإستعلام في الكائنات سوى كانت معرفة من أصل اللغة أو من قبل المبرمج.

سنقوم بكتابة مثال للإستعلام في مصفوفة نصية للبحث عن الأسماء التي تبدأ بحرف J

كود :
Dim names() As String = {"Peter", "Dave", "John", "Joseph", "Samantha"}
Dim query = From name In names
                Where name.StartsWith("J")
                Select name

For Each item In query
  Console.WriteLine(item)
Next

أما المثال التالي سوف نقوم بعرض أرقام وأسماء العمليات الجارية في نظام التشغيل والتي تحتوي أكثر من 4 Thread

كود :
Dim query = From process In process.GetProcesses()
                Where process.Threads.Count > 4
                Select process.Id, process.ProcessName

For Each item In query
  Console.WriteLine(String.Format("{0}: {1}", item.Id, item.ProcessName))
Next


2- LINQ to ADO.NET

طبعا في هذا النوع يتم الإستعلام في تقنية الـ ADO.NET وله 3 أنواع:

- LINQ to DataSet
ويقوم هذا النوع بالاستعلام في الكائن DataSet

وفي المثال التالي تم جلب أسامي الأصناف مرتبة حسب أرقامها من جدول الأصناف الموجود في الذاكرة في الكائن DataSet
كود :
Dim adpt As New CategoriesTableAdapter()
Dim ds As New NorthwindDataSet()
adpt.Fill(ds.Categories)
Dim query = From category In ds.Categories
                Order By category.CategoryID Descending
                Select category.CategoryName

For Each item In query
  Console.WriteLine(item)
Next


- LINQ to SQL
ويقوم هذا النوع بالاستعلام في قواعد البيانات العلائقية التي تستخدم لغة الاستعلام SQL

وفي المثال التالي تم الاستعلام عن عدد الطلبيات التي تاريخ طلبها أكبر من 3/2/1997

كود :
Dim db As New NorthwindDataContext()
        Dim query = (From order In db.Orders
                        Where order.OrderDate > New DateTime(1997, 2, 3)
                        Select order).Count

        Console.WriteLine(query)


.. نكتفي اليوم بهذا القدر, وسنكمل المشوار في يوم آخر وسنتطرق لأنواع اخرى يمكن الاستعلام فيها
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم