تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس السادس والستون - العودة إلى linq
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .


بعد ان تعرفنا على بعض النقاط في عالم ADO.net ، جاء الدور لنتعرف على تقنية Language Integrated Query او ما يعرف اختصاراً باسم LINQ ، وهي تقنية جديدة من مايكروسوفت تهدف كما اسلفنا في درس سابق إلى بناء استعلامات قوية يمكن التحكم فيها من خلال بيئة فيجوال ستوديو ، اضف إلى ذلك توحيد جملة الاستعلام مهما تكن نوعية مصدر قواعد البيانات الذي نتعامل معه سواء كان قاعدة بيانات أو XML File أو ملف نصي او ملف اكسيل أو خلافه .

لل LINQ ثلاث انواع رئيسية سنحاول التعرف على أجزائها هي :
LINQ to SQL – LINQ to XML – LINQ to Objects

أبسط أنواع الاستعلام هي الاستعلام مباشرة إلى متغير من نوع Array ، لنفترض المثال الذي شرحناه في مقدمتنا إلى LINQ قبل عدة دروس بالشكل التالي :


كود :
from d in developers
where d.Language =="C#"
select d.Name;
هذه هي نفسها جملة الاستعلام التي كنا نكتبها بالشكل التالي :

كود :
select name from developers where language="C#"
ولكن الآن لم نعد نحتاج لوجود قاعدة بيانات لتنفيذ جملة الاستعلام هذه عليها ، بل صار بامكاننا تطبيقها على مصفوفة بالشكل التالي :


كود :
public class Developer
{
public string Name;
public string Language;
}
Developer[] developers = new Developer[] { new Developer { Name = " Ahmed", Language="C#" }, new Developer { Name="Khaled", Language="Java", new Developer { Name="Ali", Languag="C++"} };
ومن ثم نكتب جملة استعلام بسيطة بالشكل التالي - راجع دروس ال IEnumerable - :

كود :
IEnumerable<string> LINQresult =
from d in developers
where d.Language =="C#"
select d.Name;
الآن اصبح بامكانك بكل بساطة طباعة الناتج بالشكل التالي :

كود :
froeach ( string s in LINQresult )
{
MessageBox.Show(s);
}
كما تلاحظ يمكنك استخدام اي معامل من المعاملات السابقة او عدمه ، فجملة كالتالي صحيحة ما دمت لا تحتاج الشرط :

كود :
IEnumerable<string> LINQresult =
from d in developers
select d.Name;
كما يمكنك ايضاً استخدام دالة C# عادية ضمن الشرط مثل دالة الطول بالشكل التالي :


كود :
IEnumerable<string> LINQresult =
from d in developers
where d.Name.Length > 3
select d.Name
orderby d.Name;
}}}}
تم الشكر بواسطة:
#2
ترتيب جمل الاستعلام :

تعودنا في جمل الاستعلام على ترتيب Select From Where ، ولكننا في LINQ نستخدم Select لتكون هي الأخيرة دائماً ، السبب بكل بساطة هو ما يعرف باسم IntelliSense حيث اننا نود ان نعتمد على الفيجوال ستوديو ليظهر لنا الأعمدة التي يمكنها الظهور لنا ، فيما لو كتبنا Select قبل From فلن يستطيع الفيجوال ستوديو مساعدتك في تحديد الخيارات الموجودة لإنه لا يعرف اي جدول تريد أن تقرأ منه بعد .

جملة الاستعلام الكاملة :

كود :
from id in source
{ from id in source /
Join id in source on expr equals expr [into id] |
Let id = expr |
Where condition |
Orderby ordering, ordering, ... [Ascending | Descending]
}
Select expr |
Group expr by key
[into id query]
ضع هذه الصيغة العامة في بالك فقط ، سنتعرف عليها خلال عملنا في هذه الدروس إن شاء الله ...
}}}}
تم الشكر بواسطة:
#3
بالنسبة لدوال LINQ ، هذه هي الدوال التي كنا قد عرضناها سابقاً :


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





















}}}}
تم الشكر بواسطة:
#4





















}}}}
تم الشكر بواسطة:
#5
كاتب المشاركة : أحمد جمال
























}}}}
تم الشكر بواسطة:
#6
نواصل دروسنا غداً مع التعرف على lambada واستخداماتها مع LINQ ....
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الثالث : Linq To SQL khodor1985 4 750 11-07-17, 09:46 PM
آخر رد: حريف برمجة
  خطأ في تطبيق Linq to Sql Abdh111 0 72 11-07-17, 01:22 AM
آخر رد: Abdh111
  سؤال في تطبيق الدرس الأول Linq to Sql Abdh111 0 133 11-06-17, 12:46 AM
آخر رد: Abdh111
  سؤال حول JOINT في تقنية LINQ ndjakoub 3 188 04-06-17, 09:06 PM
آخر رد: ndjakoub
  Microsoft Report using LINQ TO SQL Abu Ehab 1 226 05-05-17, 11:27 AM
آخر رد: sendbad100
Exclamation سؤال في LINQ a_abdullah 3 304 25-03-17, 11:03 PM
آخر رد: khodor1985
  عملية البحث من خلال تقنية linq khodor1985 1 590 12-03-17, 07:29 PM
آخر رد: حريف برمجة
  الدرس الرابع : Linq To SQL khodor1985 6 1,039 10-03-17, 11:12 AM
آخر رد: عماد السيد
  البحث عن كلمة داخل ملف نصي باستخدام تقنية Linq Sajad 5 1,943 09-12-16, 09:05 AM
آخر رد: اجيسك
  LINQ _ My reference Will be here أبو عمر 8 1,143 09-12-16, 09:03 AM
آخر رد: اجيسك

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


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