18-10-12, 12:50 PM
السلام عليكم ورحمه الله وبركاته
أخوتي وأخواتي أعضاء هذا المنتدى الرائع أريد أن أقدم لكم اليوم درس متنوع في تقنية الـ LINQ, هذا الدرس ما هو إلا استعراض وتطبيق إمكانيات الإستعلام بواسطة هذه التقنية للوصول إلى الحلم LINQ to Everything, طبعا سأفترض أن الشخص القارىء قد تعرف مسبقا ولو الشيء اليسير عن هذه التقنية, لأنني ليس في صدد شرح هذه التقنية.
من المعروف لدينا وبعد ظهور الإصدار 3.0 متضمنا واحدة من أعظم التقنيات في مجال التعامل مع البيانات والاستعلام فيها, وكما نعلم أن الدوت نت في ذاك الإصدار وفر 3 أنواع من البيانات للاستعلام فيها سأحاول استعراض مثال لكل واحد منها, ومن ثم سنسعى للوصول إلى حلمنا المنشود.
1- LINQ to Objects
طبعا في هذا النوع يتم الإستعلام في الكائنات سوى كانت معرفة من أصل اللغة أو من قبل المبرمج.
سنقوم بكتابة مثال للإستعلام في مصفوفة نصية للبحث عن الأسماء التي تبدأ بحرف J
أما المثال التالي سوف نقوم بعرض أرقام وأسماء العمليات الجارية في نظام التشغيل والتي تحتوي أكثر من 4 Thread
2- LINQ to ADO.NET
طبعا في هذا النوع يتم الإستعلام في تقنية الـ ADO.NET وله 3 أنواع:
- LINQ to DataSet
ويقوم هذا النوع بالاستعلام في الكائن DataSet
وفي المثال التالي تم جلب أسامي الأصناف مرتبة حسب أرقامها من جدول الأصناف الموجود في الذاكرة في الكائن DataSet
- LINQ to SQL
ويقوم هذا النوع بالاستعلام في قواعد البيانات العلائقية التي تستخدم لغة الاستعلام SQL
وفي المثال التالي تم الاستعلام عن عدد الطلبيات التي تاريخ طلبها أكبر من 3/2/1997
.. نكتفي اليوم بهذا القدر, وسنكمل المشوار في يوم آخر وسنتطرق لأنواع اخرى يمكن الاستعلام فيها
أخوتي وأخواتي أعضاء هذا المنتدى الرائع أريد أن أقدم لكم اليوم درس متنوع في تقنية الـ 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)
.. نكتفي اليوم بهذا القدر, وسنكمل المشوار في يوم آخر وسنتطرق لأنواع اخرى يمكن الاستعلام فيها