السلام عليكــم ورحمـة الله وبركاتــه
سأبدأ من الألف إلى الياء وذلك للمبتدئين في استخدام LINQ
خطوات عمل البرنامج :
- انشاء برنامج جديد فارغ من نوع Windows Form Application .
- إضافة و تصميم قاعدة البيانات عن طريق Server Explorer .
- انشاء فئات العمل ل LINQ عن طريق SQLMetal
- تطبيق استعلامات LINQ للتعامل مع الباينات ( عرض-حذف-اضافة-تعديل)
طبعا الخطوة الأولى سهلة ولا تحتاج لشرح ... وبعد انشاء البرنامج سيظهر لك نموذج وحيد Form1 اتركه كماهو ونبدأ بالخطوة الثانية ....
بناء وتصميم قاعدة البيانات
لانشاء قاعدة بيانات جديدة : نذهب للقائمة Project ونختار Add New Item و ثم نختار Local DataBase ونسميها اي اسم .فيظهر معالج الاتصال بقاعدة البيانات اضغط Cancel لأننا لا نريد انشاء DataSet .سنجد ملف الداتا قد اضيف لنافذة Solution Explorer نضغط عليه فيفتح لنا ServerExplorer ثم نضيف الجداول لقاعدة البيانات وننشيء العلاقات الازمة .
إضافة قاعدة بيانات موجودة : وللسهولة ساستخدم قاعدة بيانات NorthWind.sdf الشهيرة حيث نختار من قائمة Project ثم Add Existing Item ثم تضيف ملف NorthWind.sdf التي تجدها في المجلد :
C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples
وسيظهر معالج الاتصال بقاعدة الباينات فنضغط Cancel .
الان هذه الخطوة مهمة لكل قواعد البيانات المحلية : حيث أن الفيجوال ينشيء قاعدتي بيانات احدهما في مجلد البرنامج والثانية للتنفيذ في مجلد Debug وبالتالي فعندما نقوم باضافة بيانات اثناء تنفيذ البرنامج نتفاجأ انها اختفت عندما نستعرض البيانات في server explorer لذلك نقوم بالتالي : من نافذة المشروع Solution Explorer اختار ملف قاعدة البيانات وفي الخصائص عدل الخاصية Copy to Output Directory إلى Do not Copy .
الان نحفظ المشروع تمهيدا للخطوة الثالثة
انشاء فئات العمل مع LINQ
ما هي فئات العمل مع LINQ ؟
هي مجموعة فئات تمثل قاعدة البيانات بكافة جداولها واعمدتها على شكل كائنات يمكن التعامل معها بسهولة من داخل البرنامج فهي باختصار تقوم بتغليف كائنات قاعدة البيانات وتقدمها للمستخدم بشكل واضح وسهل كما اعتدنا مع جميع فئات .Net وهذا يؤدي لتقليل الاخطاء بالبرنامج وتقليل الكود اللازم للتعامل مع البيانات .
ان البيئة المثالية لانشاء فئات العمل هي O/R Designer ولكن لا اعلم لماذا لم تضف ماايكروسوفت دعم قواعد بيانات SQL Server CE له!!؟ وبالتالي سنستخدم البرنامج البديل وهو SQLMetal.exe وهو يأتي مع الفيجوال :
- اولا نغلق البرنامج ونذهب للمجلد C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
- ثم ننسخ الملف SQLMetal.exe إلى مجلد البرنامج الذي فيه ملف Northwind.sdf .
- نبقى في مجلد برنامجنا وننشئ اختصار جديد لملف SQLMetal.exe الذي نسخناه
- نفتح خصائص الاختصار الذي انشأناه وفي خانة Target (الهدف) نضع بعد اسم البرنامج الاوامر التالية :
/namespace:NorthWind /code:NorthWind.vb /Language:vb /pluralize NorthWind.sdf
- للتوضيح أكثر تصبح خانة الهدف كالتالي :
"C:\Users\Muhannad\Documents\Visual Studio 2008\Projects\SampleLINQ\SampleLINQ\SqlMetal.exe" /namespace:NorthWind /code:NorthWind.vb /Language:vb /pluralize NorthWind.sdf
- والان نقوم بتشغيل ملف الاختصار ستظهر نافذة موجه الاوامر للحظات ثم تختفي وسنجد أنه لدينا ملف جديد في المجلد اسمه NorthWind.vb وهو المطلوب .
- نفتح مشروعنا ونختار من قائمة Project اضافة الملف Add existing Item و نذهب لمجلد البرنامج ونضيف ملفنا الجديد NorthWind.VB .
- بقي خطوة أخيرة حيث يتطلب اضافة refrence للبرنامج ل System.Data.Linq ..الطريقة لم لا يعرف من قائمة Project ثم Add refrence ثم تحت علامة .NET ستجد System.Data.Linq أضفها للمشروع .
ملاحظة هامة : يجب اعادة انشاء ملف تالفئات عند أي تغيير في تصميم قاعدة البيانات مثلا اضافة جدول جديد أو أعمدة جديدة لجدول موجود وعندها لاتحتاج الا لتشغيل الاختصار السابق وانتبه أن لاتكون قاعدة البيانات مفتوحة في مكان اخر كالفيجوال مثلا .
الان اصبحنا جاهزين لاستخدام LINQ To SQL في برنامجنا وسأبدأ قريبا بالخطوة الهامة الرابعة وهي التطبيقات وهي التي ستكشف لكم مدى سهولة و قوة تعبيرات LINQ ان شاء الله .
مع التحية