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

 

قامت شركة مايكروسوفت بإصدار ما يسمى بـLINQ و تنطق Link، وهي اختصار Language Integrated Query.

LINQ هي Componant تم بنائه و تجربته من قبل شركة مايكروسوفت تتيح الاستعلام عن البيانات في بيئة الدوت نت عن طريق لغة شبيهة بالـ SQL ، و هي جزء من نسخة الدوت نت 3.5.

تستطيع LINQ الاستعلام عن البيانات في المصفوفات Arrays و الكلاسات Class و ملفات الـ XML و قواعد البيانات و لكن لابد لهذه البيانات أن تكون بصيغة Objects أو أن يتم تحويلها إلى Objects لكي يتم الاستعلام عن هذه البيانات.

و نستطيع القول أن SQL لغة للاستعلام عن البيانات في قواعد البيانات، و LINQ لغة استعلام عن البيانات في الذاكرة على شكل Objects، فنستطيع ترتيب المصفوفة بـ LINQ بدلاً من ألقورثمات الترتيب المعروفة، و نستطيع البحث عن عناصر داخل المصفوفة بدلاً من ألقورثمات البحث التقليدية.

و هذه بعض الأمثله عن كيفية الإستعلام في LINQ:

المثال الأول:

الاستعلام عن كل القيم التي أصغر من 5 في المصفوفة Array:

public void Linq1() {
    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

    var lowNums =
        from n in numbers
        where n < 5
        select n;

    Console.WriteLine("Numbers < 5:");
    foreach (var x in lowNums) {
        Console.WriteLine(x);
    }
}

و سيطبع هذا الكود كل الأرقام الموجودة في المصفوفة numbers و التي قيمتها أقل من 5، و تخيل سهولة هذا الكود مقارنةً بالكود العادي للبحث و الطباعة.

ولابد أن نراعي أن طريقة كتابة Syntax لغة LINQ تختلف قليلاً عن SQL، فشكل جملة LINQ

FROM [element] IN [ClassObject]
WHERE [condition]
SELECT [fields]

 و كود الـ SQL شكلة كالتالي:

SELECT [Fields]
FROM [TableName]
WHERE [condition]

مثال 2:

الإستعلام من داخل List و سوف نستعلم عن كل المنتجات Products التي تكون فيها قيمة UnitsInStock تساوي الصفر.

public void Linq2() {
    List products = GetProductList();

    var soldOutProducts =
        from p in products
        where p.UnitsInStock == 0
        select p;
   
    Console.WriteLine("Sold out products:");
    foreach (var product in soldOutProducts) {
        Console.WriteLine("{0} is sold out!", product.ProductName);
    }
}

مع العلم أن LINQ مدعومة في السي# النسخة 3.0. و من الممكن تحميل Extension لكي تعمل على نسخة الدوت نت 2.0.

و غيرها الكثير من الأمثلة من الممكن أن تجدها في موقع MSDN على هذا الرابط.

و من الممكن الحصول معلومات أكثر عن LINQ من الموقع الرسمي أو من موقع الويكيبيديا.

كما أود التنبيه أن LINQ من الممكن أن تستخدم للاستعلام من قواعد البيانات و الاستعلام داخل ملفات الـ XML و سوف أكتب فيها قريباً إن شاء الله تعالى. 

أتمنى أن يكون المقال قد أفادكم...

 

تحياتي ,,, طلال الحضبي.

Del.icio.usDigg It!DZone It!Reddit

التصنيف: .NET , ASP.NET , C# , قواعد البيانات , SQL Server
البطاقات: , , , ,

اضف تعليق


(سيظهر Gravatar أيقونة)  

  Country flag

biuquote
  • تعليق
  • استعراض
Loading



البحث



إخلاء مسؤولية
جميع الآراء التي تم التعبير عنها هنا هي آرائي الشخصية وهذه الاّراء لا تمثل وجهة نظر عملي على أي حال.
© جميع الحقوق محفوظة 2008 مدونة طلال




Sign in