الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الفرق بين Dataset,Entity Framework,LINQtoSQL

بدأه googleshokry في 26 فبراير 2014 · 2 رد · 1,001 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمةالله وبركاتة
عاوز اعرف مفهوم وتعربف ل Dataset,Entity Framework,LINQtoSQL
و الفرق بينهم وبين بعض باسلوب عملي وليس نظري 

#2

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

أهم نقطة بالموضوع أن جميع هذه التقينات تعتمد بالأساس على مفهوخ ADO.NET، الخاص بتقينات ميكروسوفت

أما الفرق الأساسي في كل تقنية يكاد يكون في السلوك أكثر من الأداء،

1. DataSet: لها نوعان DataSet, TypedDataSet، أي بالإمكان تعريف DataSet خاصة بنوع البيانات المطابق لقاعدة البيانات، وهي تحوي على نمط لتصميمها وتعريف الجداول وربطها بقاعدة البيانات. ( ويتم التحدث مع قاعدة البيانات عن طريق استعلامات SQL المعروفة)

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

3. Entity Framework: تعتبر أفضل تقنية (طبقة تواصل مع قاعدة البيانات). لها مواصفات عمل (LINQtoSQL). ولكن بالنسبة Entity التحدث لن يكون مباشر إلى قاعدة البيانات وانما إلى Conceptual Model وهو انعكاس لقاعدة البيانات + مجموعة من التعريفات الإضافية على هذه الطبقة لتخصيص وتوسيع العمل أكثر. لنأخذ مثال صغير مثلاً.

تخيل لدينا جدول يسمى مستخدم (User) بقاعدة البيانات، ويحوي مجموعة من المستخدمين يقسمون إلى (Admin, Member, User). طبعا يتم التمييز بين كل نوع عن طريق حقل (النوع). ضمن Conceptual Model يمكننا فصل الجدول إلى ثلاث جداول (AdminUser, MemberUser, NormalUser). حيث نقوم بعمل كلاسات ترث من كلاس User ، وضمن الكود نتعامل مع AdminUser بدل User وعن التخزين أو التعديل، يتم إرجاعه ضمنيا إلى الحقل المناسب ضمن جدول User، بالتالي يكون التعامل برمجياً أسهل وأوسع. قس هذا الأمر على نماذج واسعة.

 

ملاحظة: LINQtoSQL قام بتطويرها فريق #C ضمن ميكروسوفت، أما Entity Framework قام بتطويرها فريق ADO.NET  ضمن ميكروسوفت، ورغم أن الطريقتين تعتمدان على LINQ للاستعلامات، إلى أن البنية الداخلة تختلف اختلافا واضحا.

LINQtoSQL تعتمد على SqlClient للتحدث مع قاعدة البيانات.

Entity Framework تعتمد على EntityClient للتحدث مع قاعدة البيانات.

 

بالنهاية هناك درس قيد التطوير إن شاء الله، يوضح طرق إنشاء هذه الطبقات وربطها بالمشروع بالطريقة الصحيحة

/index.php/topic/282900-%D9%87%D8%A7%D9%85-%D9%81%D9%8A-%D8%AA%D8%B5%D9%85%D9%8A%D9%85-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA/

2

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

مواضيع مشابهة