لغة الاستعلام المتكاملة (LINQ)

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

لغة الاستعلام المتكاملة (LINQ)

مُساهمة من طرف أبوسجود في السبت أغسطس 17, 2013 2:55 pm

بسم الله الرحمن الرحيم

الاخوة الكرام السلام عليكم ورحمة الله وبركاتة و مرحبا بكم فى درس جديد ....موضوعنا اليوم يخص لغة الاستعلام المتكاملة (LINQ) الجديده من مايكروسوفت لعام 2008 و شرح كتابة الاستعلامات باستخدامها

أولا :نبذة عن لغة الاستعلام المتكاملة (LINQ) :

لغة الاستعلام المتكاملة Language Integrated Query و التى تختصر الى (LINQ) وهى أحد مكونات إطار عمل الدوت نت و تستخدم فى إمكانية الاستعلام عن البيانات للغات الدوت نت....كما تملك أيضا وصلات (ports) لاستخدامها في الجافا و البي إتش بي و الجافا سكريبت......حيث يوفر قدرات بسيطة وفعالة عند العمل مع كل أنواع البيانات...

يتيح لك LINQ الاستعلام عن البيانات في قاعدة بيانات كثيرة منها SQL Server أو في XML أو في صفائف الذاكرة memory arrays أو المجموعات collections أو مجموعة بيانات ADO.NET أو أى مصدر أخر بعيد أو محلي يدعم LINQ



ثانيا :بنية إستعلام LINQ

بناء جملة الاستعلام LINQ يشبه بناء جملة SQL لذلك، قد تجد الكثير من بناء الجملة مألوفا لك ..

تبدأ جملة إستعلام LINQ بالكلمة المحجوزة From و التى تعبر عن مصدر بيانات الاستعلام والمتغيرات المستخدمة للإشارة إلى كل عنصر في مصدر البيانات بشكل فردي والتى تسمى بمتغيرات النطاق أو متغيرات تكرارب ...على سبيل المثال نقوم ببناء الاستعلام التالي مصدر مجموعة بيانات العميل كـمتغير customers و متغير تكرار مسمى cust.....وذلك على النحو التالى :

الرمز:
Dim ueryResults = From cust In customers
                  
الاستعلام في هذا المثال السابق بسيط للغاية ... ومع ذلك يمكنك بناء استعلام أكثر فعالية عند إضافة أكثر من عبارات الاستعلام لتحسين النتيجة....وذلك من خلال ما يسمى عوامل تشغيل استعلام LINQ 

ثالثا :عوامل تشغيل استعلام LINQ 

1_جملة Where
يمكنك إضافة جملة Where لتصفية النتائج حسب شرط معين أو أكثر....و التعليمات البرمجية التالية يظهر مثال استعلام يتضمن جملة Where
الرمز:

ueryResults = From cust In customers
               Where cust.Country = "USA"
ففى المثال السابق سيقوم بجلب كافة البيانات المتوافرة من المصدر customers بشرط ان يكون أن يكون العنوان USA ....كما يمكنك استخدام العوامل المنطقية مثل And و Or لوضع أكثر من شرط فى جملة WHERE على النحو التالى :
الرمز:
Where cust.City = "London" And cust.Name = "Devon"
الرمز:


Where cust.City = "London" Or cust.City = "Paris"

2_ جملة Select

وتستخدم فى تحديد شكل ومحتوى العناصر التي تم إرجاعها....فإن كنا فى المثال السابق قد قمنا بارجاع كافة العناصر أو البيانات من المصدر customers فيمكننا أستخدام جملة Select لتحديد عناصر معينة فقط دون الاخرى ....وذلك على النحو التالى :

الرمز:
ueryResults = From cust In customers
              Where cust.Country = "USA"
              Select cust.CompanyName, cust.Country
وكما ترون قد قمنا بتحديد عنصرين فقط من العناصر الموجودة فى المصدر customers وهما CompanyName و Country

3_ جملة Join

يمكنك ايضا بناء جملة استعلام LINQ لتجميع عدة مصادر من البيانات ولكن باستخدام جملة Join ....وذلك على النحو التالى :

الرمز:


Dim query = From cust In customers _
                Join ord In orders On
                    cust.CustomerID Equals ord.CustomerID _
                Select cust.CompanyName, cust.CustomerID

_يمكنك ايضا بناء جملة استعلام LINQ لتجميع عدة مصادر من البيانات ثم إرجاع نتيجة واحدة....ويمكن فعل ذلك على النحو التالى :
الرمز:

ueryResults = From cust In customers, ord In orders
                  Where cust.CustomerID = ord.CustomerID
                  Select cust, ord
4_ جملة Order By

ويتم استخدمها لفرز البيانات التي تم إرجاعها في ترتيب معين .......ويتم أستخدامها على النحو التالى :

الرمز:
Dim londonCusts1 = From cust In customers
                   Where cust.City = "London"
                   Order By cust.Name Ascending
وفى المثال السابق سيتم فرز حقل الاسم فرزا تنازليا من A الى Z فقد استخدمنا الامر Ascending ...أما اذا اردنا أستخدام الفرز التصاعدى من z الى a نستخدم الامر  Descending

5_ جملة Aggregate

و تستخدم فى إجراء بعض العمليات الحسابية على كافة قيم العناصر التي يتم إرجاعها من قبل الاستعلام ....ويتم استخدامها على النحو التالى :

مثال لجمع عناصر الاستعلام
الرمز:

Dim customerTotals = From cust In customers
                     Aggregate order In cust.Orders
                     Into Sum(order.Total)
مثال أخر لارجاع اكبر العناصر قيمة:
الرمز:
Dim customerMaxOrder = Aggregate order In orders
                       Into MaxOrder = Max(order.Total)
و يمكنك ملاحظة أننا لم نستخدم الكلمة المحجوزة form فى تلك الجملة بالتحديد و ذلك لكونها ليست ضرورية عند استخدام Aggregate


6_ الجملة Distinct

و تستخدم فى تنسيق نتيجة الاستعلام بحيث لا يجلب قيم مكررة .....و تستخدم على النحو التالى :
الرمز:

Dim cities = From item In Customers _
Select customer.City_
Distinct
7_ الجملة Let

و تستخدم لحساب قيمة معينه ووضعها فى متغير جديد .....على النحو التالى :
الرمز:
Dim discountedProducts = From prod In products _
Let Discount = prod.UnitPrice * 0.1 _
Where Discount >= 50 _
Select prod.ProductName, prod.UnitPrice, Discount
8_ الجملة Skip

و التى تستخدم فى تجاهل عدد معين من العناصر و إعادة الباقى .....وتستخدم على النحو التالى :

الرمز:
Dim customerList = From cust In customers _
Skip 10
9_ الجملة Skip While

و التى تستخدم ايضا فى تجاهل عدد معين من العناصر و إعادة الباقى ولكن بشرط معين ....وتستخدم على النحو التالى :
الرمز:
Dim customerList = From cust In customers _
Skip While IsSubscriber(cust)

الى هنا نكون قد أنتهينا من فسهم اساسيات لغة الاستعلام المتكاملة (LINQ) فى دروس أخرى إن شاء الله تعالى سنقوم بعرض تفاصيل متقدمة عن تلك اللغة

تحياتى للجميع

أبوسجود
.....
.....

تاريخ التسجيل : 18/02/2011
المساهمات : 87
النقاط : 162
التقيم : 7
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: لغة الاستعلام المتكاملة (LINQ)

مُساهمة من طرف المبرمج الطموح في الأحد أغسطس 18, 2013 10:25 am

جزاك الله خيرا ابو سجود

المبرمج الطموح
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 117
النقاط : 213
التقيم : 6
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: لغة الاستعلام المتكاملة (LINQ)

مُساهمة من طرف أيمن الإبراهيم في الأحد أغسطس 18, 2013 11:32 am

جزاك الله خيرا

أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: لغة الاستعلام المتكاملة (LINQ)

مُساهمة من طرف RANA في الثلاثاء سبتمبر 10, 2013 12:49 pm

بدى امثلة اخى الكريم

RANA
....
....

تاريخ التسجيل : 01/08/2013
المساهمات : 64
النقاط : 103
التقيم : 1
الدولة : فلسطين
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى