الصفحة الرئيسية > تقنية عامة > 2- استخدام مزود LINQ-to-SQL

2- استخدام مزود LINQ-to-SQL

استخدام مزود LINQ-to-SQL لا يختلف كثيرا عن استخدام Dataset الا في بعض الخطوات البسيطة ، كما سنرى الآن :
في البداية ، نقوم بإضافة فئات LINQ-to-SQL وذلك بالتوجه إلى القائمة Project | Add New Project Item ثم اختيار LINQ-to-SQL Classes واعطها الاسم CustomerOrders ، ستظهر امامك نافذة خالية ، سنحتاج ان نقوم بسحب الجداول المطلوبة إلى الجزء الايسر منها من نافذة Server Explorer ، لذلك اذهب إلى نافذة server Explorer وافتح قاعدة البيانات من هناك او اضفها إلى تلك القائمة من خلال الزر Connect to Database . بعد قيامك بهذا ، قم بسحب الجدولين Order,Customers إلى الجزء الايسر من نافذة الـ O/R Designer التي ظهرت قبل قليل ، وستلاحظ انشاء الجدولين هناك على شكل فئات كما بالصورة التالية :

بهذا نكون قد هيئنا فئات LINQ-to-SQL للعمل عليها ، ننتقل الان إلى تصميم النافذة الاولى ، وهي التي تتبع النمط Full Detailed ، سنتوجه بداية إلى النافذة Data Sources ونقوم بإضافة مصدر بيانات جديد لكن انتبه عندما يظهر امامك المعالج اختر الخيار Objects وليس Database كما بالصورة التالية :

وذلك لاننا سنختار ان يكون مصدر البيانات هو الفئات التي ولدها الـ O/R Designer وليس قاعدة البيانات مباشرة .
في المرحلة التالية من المعالج ، اختر الفئة Customer كما بالصورة التالية :

قم بعدها بإنهاء المعالج بالخيار Finish مباشرة ، الآن ستظهر كل حقول الجدول Customer على شكل فئة وخصائص تابعة لها وكذلك فئة فرعية بالإسم Orders وهي تمثل الجدول Orders التابع للجدول Customer بعلاقة من النوع One-to-Many كما بالشكل التالي :

يمكنك الان التعامل مع تلك الفئات مباشرة مثلما عملنا مع Dataset في مرة الماضية ، حيث قم بسحب الفئة customer إلى النافذة على شكل Details ، ثم قم بسحب الجدول Orders التابع لها ايضا إلى النافذة ، هنا سنحتاج إلى خطوة اضافية بسيطة وهي تعبئة الفئة Customer بالبيانات ، حيث ان الفئة الحالية ستكون وكأنها مجرد مخطط لا اكثر نستخدمه في انشاء الادوات والربط بينها بسهولة ، توجه إلى محرر الاكواد واكتب الكود التالي :

Public Class Form1
    
Dim db As New CustomerOrdersDataContext

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _ 
System.EventArgs) Handles MyBase.Load
        
Me.CustomerBindingSource.DataSource = db.Customers

    End Sub

    Private Sub CustomerBindingNavigatorSaveItem_Click(ByVal sender As _ 
System.Object, ByVal e As System.EventArgs) Handles _ CustomerBindingNavigatorSaveItem.Click
        
Me.CustomerBindingSource.EndEdit()
        
Me.db.SubmitChanges()
    
End Sub
End Class

 

الكائن db يمكنك اعتباره ممثل لجداول قاعدة البيانات الموجودة في الـ O/R Designer ويمكنننا من خلاله الوصول إلى الفئات التابعة له ( المقابلة للجداول ) والتحكم بها كما سنرى ،

في الحدث form_load نقوم بإسناد الفئة db.Customers لتكون هي مصد البيانات في الـ CustomersBindingSource ، وفي حدث CustomerBindingNavigatorSaveItem_Click الذي يتم تفجيره بمجرد نقر زر الحفظ نستخدم ذات الكائن ليقوم بإرسال كل التغييرات التي طرأت على البيانات سواءا كانت هذه التغييرات اضافة ، حذف او حتى تعديل بسطر واحد فقط !

بهذا نكون جاهزين لتشغيل التطبيق وتجربة النموذج الجديد !

بناء نموذج من نوع Lookup List :
لا اعتقد انك بحاجه إلى اعادة مجموعة من الاسطر كتبناها في حديثنا عن تطوير نافذة من النوع Lookup List باستخدام dataset ولا اعتقد ايضا انك بحاجه إلى اعادة كتابة سطرين صغيرين كتبناهما قبل حوالي 10 اسطر ! لذلك سأكتفي هنا بعرض المثال مباشرة .

التصنيفات :تقنية عامة
  1. لا توجد تعليقات حتى الآن.
  1. No trackbacks yet.

أضف تعليق