كيفية القيام بما يلي: إرجاع نتيجة استعلام LINQ كـ نوع محدد في (Visual Basic)

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

المثال التالي يوضح كيفية إنشاء تطبيق جديد يقوم بأداء استعلامات مقابل قاعدة بيانات SQL الخادم والمشاريع و النتائج كـ مسمى نوع معين. للمزيد من المعلومات، راجع أنواع مجهولة وتحديد العبارة (Visual Basic).

تستخدم الأمثلة الموجودة في هذا موضوع قاعدة بيانات نموذج Northwind. إذا لم يكن لديك قاعدة بيانات نموذج Northwind على كمبيوتر التطوير الخاص بك، يمكنك تحميلها من موقع ويب مركز تنزيل Microsoft. للحصول على إرشادات، راجع Downloading Sample Databases (LINQ to SQL).

ملاحظة

قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.

لإنشاء اتصال إلى قاعدة البيانات

  1. في ‏‫Visual Studio افتح مستعرض الخادم/مستعرض قاعدة البيانات بالنقر فوق مستعرض الخادم/مستعرض قاعدة البيانات على قائمة عرض.

  2. انقر على اليمين اتصالات البيانات في مستعرض الخادم/مستكشف قاعدة البيانات ثم انقر فوق إضافة اتصال.

  3. تحديد اتصال صالح إلى قاعدة بيانات نموذج Northwind.

لإضافة المشروع الذي يحتوي على ‏‫ملف LINQ to SQL

  1. في ‏‫Visual Studio , على القائمة ملف قم بالإشارة إلى جديد ثم انقر فوق مشروع. حدد Visual Basic تطبيق Windows Forms كنوع المشروع.

  2. في مشروع قائمة ، انقر فوق إضافة عنصر جديد . حدد قالب عنصر فئات LINQ to SQL.

  3. قم بتسمية الملف northwind.dbml. انقر فوق إضافة. يتم فتح "مصمم كائن العلاقات" ( مصمم O/R ) لملف northwind.dbml .

لإضافة جداول لاستعلام مصمم O/R

  1. في مستعرض الخادم/مستعرض قاعدة بيانات ، قم بتوسيع الاتصال إلى قاعدة بيانات Northwind. قم بتوسيع مجلد الجداول.

    إذا قمت بإغلاق مصمم O/R، يمكنك إعادة فتحه بواسطة النقر المزدوج فوق ملف northwind.dbml الذي قمت بإضافته سابقاً.

  2. انقر فوق جدول العملاء وقم بسحبه إلى الجزء الأيسر للمصمم.

    يقوم المصمم بإنشاء كائن جديدة Customer للمشروع. يمكنك إسقاط نتيجة استعلام كما هو نوع Customer أو كنوع التي تقوم بإنشائها. سيتم إنشاء نوع جديد لاحقا في إجراء و إسقاط نتيجة استعلام بذلك النوع.

  3. احفظ المتغيرات و قم بإغلاق المصمم.

  4. احفظ المشروع الخاص بك.

لإضافة تعليمات برمجية لاستعلام قاعدة البيانات وعرض النتائج

  1. من مربع الأدوات, قم بسحب تحكم DataGridView على النوافذ الافتراضية من المشروع الخاص بك، Form1.

  2. انقر نقرا مزودجا على Form1 لتعديل فئة Form1.

  3. بعد عبارة End Class من فئة Form1، أضف التعليمات البرمجية التالية لإنشاء نوع CustomerInfo للإحتفاظ بنتائج الإستعلام عن هذه العينة.

    Public Class CustomerInfo
      Public Property CompanyName As String
      Public Property ContactName As String
    End Class
    
  4. عند تتم إضافة جداول إلى ‏‫مصمم O/R، يقوم المصمم بإضافة كائن DataContext إلى مشروعك. هذا الكائن يحتوي على التعليمات البرمجية حيث يجب أن يكون لديك وصول إلى هذه الجداول ثم الوصول إلى الكائنات الفردية و مجموعات لكل جدول. الكائن DataContext للمشروع الخاص بك، تمت تسميته استناداً إلى اسم الملف .dbml الخاص بك. لهذا المشروع، الكائن DataContext تمت تسميته northwindDataContext.

    يمكنك إنشاء مثيل DataContext في التعليمات البرمجية الخاصة بك و استعلام الجداول المحددة بواسطة مصمم O/R.

    في الحدث Load من فئة Form1، أضف التعليمات البرمجية التالية لاستعلام الجداول التي تعرض كخصائص لسياق البيانات و لفرز نتائج الاستعلام. العبارة Select من الإستعلام سوف تقوم بإنشاء نوع جديد CustomerInfo اكتب بدلاً من النوع المجهول لكل عنصر لنتيجة الإستعلام.

    Dim db As New northwindDataContext
    
    Dim customerList =
      From cust In db.Customers
      Where cust.CompanyName.StartsWith("L")
      Select New CustomerInfo With {.CompanyName = cust.CompanyName,
                                    .ContactName = cust.ContactName}
    
    DataGridView1.DataSource = customerList
    
  5. اضغط F5 لتشغيل المشروع الخاص بك وعرض النتائج.

راجع أيضًا:

المهام

Walkthrough: Creating LINQ to SQL Classes (O/R Designer)

المبادئ

DataContext Methods (O/R Designer)

موارد أخرى

LINQ في Visual Basic

استعلامات (Visual Basic)

LINQ to SQL