تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] Entity Model vs LINQ_To_SQL
#1
بسم الله الرحمن الرحيم
الصلاة و السلام على سيدنا محمد و على آله و أصحابه أجمعين

السلام عليكم و رحمة الله و بركاته,

لقد قمت بالتحويل إلى SQL Smile و الحمدلله.

لكن عندما أقوم بإضافة قاعدة البيانات إلى المشروع الذي أعمل عليه يظهر لي إختيار هو:
Entity Model!

و أنا أردت العمل على LINQ_To_SQL حيث أخبرني أخي العزيز (أبو إيهاب) بأنها افضل من الـADO.Net ... و بما أنني أتعلم #C من البداية, فقررت أن أتعلم أحدث التقنيات الموجودة في الفيجوال ستوديو تحت بيئة #C.

و وجدت أنها WPF و LINQ_To_SQL و Entity Model.

لذا, قمت بالبحث على الانترنت عن الاختلافات بين LINQ_To_SQL و Entity Model و وجدت التالي:
Entity Model vs LINQ_To_SQL

لذا, يرجى من أصحاب الخبرة في برمجة قواعد البيانات توجيهي نحو أفضل تقنية ... مع العلم أن مايكروسوفت تقول على موقعها أن Entity Model تفضل على الـ LINQ_To_SQL.

فهل من رأي من الأخوة الأفاضل في منتدانا الجميل؟


تحياتي
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم اخي العزيز

هنالك تشابه كبير بين التقنيتين إلا أن هنالك بعض الاختلافات حسب هذا الموقع الجميل Entity Framework Tutorial الذي يقدم كل شيء تقريبا عن الـ Entity Model

وتتلخص هذه الاختلافات بالتالي:

1- EF يدعم التعامل مع قواعد البيانات التالية: sql, sql CE, Oracle ,MySQL بينما Linq TO SQL يدعم SQL و SQL CE.
2- تعتبر تقنية محسنة لتقنية ADO.NET حيث يحاكي قاعدة البيانات بالـObjects حيث تسهل لنا التعامل مع الـ n_Tier
3- عدة طرق للنمذجة: الكود أولا ,النموذج أولا ,قاعدة البيانات أولا. بمعني يمكنك البدء بكتابة الكلاسات ومن ثم تحويلها الى Entities او تبدأ بـModel فارغة او تبدأ من قاعدة البيانات ومن ثم تقوم بادراج قاعدة البيانات الى Entities.
4- تتوفر فيها خاصية الوراثة حيث يمكن للـEntity الأبن أن يورث كل خصائص الـEntity الأب.
5- في كل الاحيان يمكن لكلاس واحد ان يرتبط بجدول واحد من قاعدة البيانات في تقنية Linq, أما في الـEF يمكن لكلاس واحد ان يرتبط بعدة جداول من قاعدة البيانات حسب قاعدة الوراثة.

أتمنى اني قد لخصت لك الفائدة من الـEF.

تحياتي
الرد }}}}
تم الشكر بواسطة: hoob computer
#3
و عليكم السلام و رحمة الله و بركاته,
تسلم أخوية سجاد, بالفعل أني اليوم بقيت بس أقره على هذه التقنية الرائعة بكل معنى الكلمة. و للعلم, LINQ To SQL إحتمال بعد مايطورها مايكروسوفت و هالشي قريته على موقعهم و التطوير يكون بس على EF.
بس المشكلة إنه EF تكون أثقل من LINQ To SQL و هالشي حسب الي قريته أيضاً.

و بالنسبة لردك, يا ريت لو توضحلي المذكور باللون الأحمر بهاي النقاط أكثر:

(17-11-13, 11:05 PM)Sajad كتب :
2- تعتبر تقنية محسنة لتقنية ADO.NET حيث يحاكي قاعدة البيانات بالـObjects حيث تسهل لنا التعامل مع الـ n_Tier
3- عدة طرق للنمذجة: الكود أولا ,النموذج أولا ,قاعدة البيانات أولا. بمعني يمكنك البدء بكتابة الكلاسات ومن ثم تحويلها الى Entities او تبدأ بـModel فارغة او تبدأ من قاعدة البيانات ومن ثم تقوم بادراج قاعدة البيانات الى Entities.
4- تتوفر فيها خاصية الوراثة حيث يمكن للـEntity الأبن أن يورث كل خصائص الـEntity الأب.

تحياتي
الرد }}}}
تم الشكر بواسطة:
#4
السلام عليكم

ما أقصده بالـObjects هو انه تعاملنا مع قاعدة البيانات سوف تكون على اساس OOP يعني سوف نتعامل مع كلاسات ولن نحتاج الى الاساليب القديمة للـADO.NET

أما بالنسبة للاستفسار الثاني انه هنالك عدة طرق للتعامل مع الـEF مثال: اولا تبني قاعدة البيانات ومن ثم تستوردها الى EF أو العكس ممكن أن تفتح EF فارغة وتبدأ بانشاء الـEntities ومن ثم تحولها الى قاعدة بيانات وهكذا.....

أما للأستفسار الاخير وهذا ما لا يوجد في تقنية LINQ أنه يمكن لـEntity معين أن تورث صفات وخصائص Entity آخر بينما في الـLINQ لا يمكن.

تحياتي
الرد }}}}
تم الشكر بواسطة: hoob computer
#5
و عليكم السلام و رحمة الله و بركاته,

تسلم أخوية سجاد و جزاك الله خير على هذا التوضيح الرائع.
الأن الصورة أكتملت عندي و الحمدلله, لكن يبقى سؤال يراودني كثيراً و هو:

إن كانت EF قد تفوقت على LINQ فلماذا نقول أن LINQ افضل و اسرع من EF؟ و هذا من بعض الذي قرأته أيضاً!


لكنني دخلت في نقاش طويل مع Julie Lerman البارحة على حسابها الشخصي, و من الحوار الذي دار بيننا وضحت لي التالي:
1- إن EF اثقل قليلاً من LINQ.
2- LINQ إنتهت مايكروسوفت من مرحلة الاستمرار في تطويرها و إتجهت إلى تطوير EF و ستستمر في تطوير EF فقط. أي أن LINQ لن يتم تطويرها في المستقبل.
3- لو كان المشروع الذي أقوم به كبير و لنقل ERP فيفضل إستخدام EF لتميزها في بعض الجوانب عن LINQ. و إن كان المشروع متوسط أو صغير فيفضل إستخدام LINQ في الوقت الحالي.


تحياتي
الرد }}}}
تم الشكر بواسطة: Sajad
#6
جميل جدا

أما بالنسبة لسؤالك (رأي الشخصي) انها اسهل من الـEF من ناحية التعقيد فلو قمت بفتح EF فارغة وبدأت باضافة الكينونات اليها ومن ثم أنشأت منها قاعدة بيانات SQL ستجد الكثير من النماذج على الـSolution Explorer بينما في الـLinq ستجد فقط ملف الـDBML ولن يزعجك كثرة الاشياء

وأيضا استعلامات LINQ ليست حكرا فقط في التعامل مع قاعدة البيانات بل يتعدى ذلك الى التعامل مع ملفات xml وكائنات وقوائم ومصفوفات وهكذا...

وإن أردت المزيد عن LINQ To SQL يمكنك قراءة الكتيب المتواضع الذي أعددته من هذا الرابط على موقع Kutub: Linq To SQL

واعطيك شيء مهم جدا هو أنه هنالك شيء اسمه LINQ To Entities أي يمكن من خلال تقنية Linq واستعلاماته أن تتعامل مع هذه الـكينونات.... شيء جميل أليس كذلكSmile

تحياتي
الرد }}}}
تم الشكر بواسطة: hoob computer
#7
جميل جداً Smile

ممنون منك سجاد.


تحياتي
الرد }}}}
تم الشكر بواسطة: Sajad
#8
بسم الله الرحمن الرحيم
السلام عليكم
اخي الفاضل / سجاد محمد باقر
بارك الله فيك انت والسائل على التوضيح المفيد ومنذو فترة أود ان اتعلم LINQ To SQL وكتابك مفيد جدا ولكن انا لا اجيد التعامل مع C# لذلك أود منكم اذا كان لديكم كتاب يوضح كيف التعامل مع LINQ To SQL من خلال VB.NET بارك الله فيك
الله المستعان
الرد }}}}
تم الشكر بواسطة:
#9
إقتباس :بسم الله الرحمن الرحيم
السلام عليكم
اخي الفاضل / سجاد محمد باقر
بارك الله فيك انت والسائل على التوضيح المفيد ومنذو فترة أود ان اتعلم LINQ To SQL وكتابك مفيد جدا ولكن انا لا اجيد التعامل مع C# لذلك أود منكم اذا كان لديكم كتاب يوضح كيف التعامل مع LINQ To SQL من خلال VB.NET بارك الله فيك

وعليكم السلام اخي العزيز

وفيك بارك الله

حاليا انا بصدد تحويل الكتاب الى لغة VB.NET وحال انتهائي باذن الله سوف افرد موضوع خاص اطرح فيه هذا الكتاب

تحياتي
الرد }}}}
تم الشكر بواسطة: hoob computer


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم