التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 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;
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس السادس والستون - العودة إلى linq - بواسطة Raggi Tech - 14-10-12, 09:44 PM


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


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