![]() |
|
[سؤال] Entity Model vs LINQ_To_SQL - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم تقنية LinQ (http://vb4arb.com/vb/forumdisplay.php?fid=204) +--- الموضوع : [سؤال] Entity Model vs LINQ_To_SQL (/showthread.php?tid=983) |
Entity Model vs LINQ_To_SQL - hoob computer - 17-11-13 بسم الله الرحمن الرحيم الصلاة و السلام على سيدنا محمد و على آله و أصحابه أجمعين السلام عليكم و رحمة الله و بركاته, لقد قمت بالتحويل إلى SQL و الحمدلله.لكن عندما أقوم بإضافة قاعدة البيانات إلى المشروع الذي أعمل عليه يظهر لي إختيار هو: 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. فهل من رأي من الأخوة الأفاضل في منتدانا الجميل؟ تحياتي RE: Entity Model vs LINQ_To_SQL - Sajad - 17-11-13 السلام عليكم اخي العزيز هنالك تشابه كبير بين التقنيتين إلا أن هنالك بعض الاختلافات حسب هذا الموقع الجميل 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. تحياتي RE: Entity Model vs LINQ_To_SQL - hoob computer - 17-11-13 و عليكم السلام و رحمة الله و بركاته, تسلم أخوية سجاد, بالفعل أني اليوم بقيت بس أقره على هذه التقنية الرائعة بكل معنى الكلمة. و للعلم, LINQ To SQL إحتمال بعد مايطورها مايكروسوفت و هالشي قريته على موقعهم و التطوير يكون بس على EF. بس المشكلة إنه EF تكون أثقل من LINQ To SQL و هالشي حسب الي قريته أيضاً. و بالنسبة لردك, يا ريت لو توضحلي المذكور باللون الأحمر بهاي النقاط أكثر: (17-11-13, 11:05 PM)Sajad كتب : تحياتي RE: Entity Model vs LINQ_To_SQL - Sajad - 18-11-13 السلام عليكم ما أقصده بالـObjects هو انه تعاملنا مع قاعدة البيانات سوف تكون على اساس OOP يعني سوف نتعامل مع كلاسات ولن نحتاج الى الاساليب القديمة للـADO.NET أما بالنسبة للاستفسار الثاني انه هنالك عدة طرق للتعامل مع الـEF مثال: اولا تبني قاعدة البيانات ومن ثم تستوردها الى EF أو العكس ممكن أن تفتح EF فارغة وتبدأ بانشاء الـEntities ومن ثم تحولها الى قاعدة بيانات وهكذا..... أما للأستفسار الاخير وهذا ما لا يوجد في تقنية LINQ أنه يمكن لـEntity معين أن تورث صفات وخصائص Entity آخر بينما في الـLINQ لا يمكن. تحياتي RE: Entity Model vs LINQ_To_SQL - hoob computer - 18-11-13 و عليكم السلام و رحمة الله و بركاته, تسلم أخوية سجاد و جزاك الله خير على هذا التوضيح الرائع. الأن الصورة أكتملت عندي و الحمدلله, لكن يبقى سؤال يراودني كثيراً و هو: إن كانت EF قد تفوقت على LINQ فلماذا نقول أن LINQ افضل و اسرع من EF؟ و هذا من بعض الذي قرأته أيضاً! لكنني دخلت في نقاش طويل مع Julie Lerman البارحة على حسابها الشخصي, و من الحوار الذي دار بيننا وضحت لي التالي: 1- إن EF اثقل قليلاً من LINQ. 2- LINQ إنتهت مايكروسوفت من مرحلة الاستمرار في تطويرها و إتجهت إلى تطوير EF و ستستمر في تطوير EF فقط. أي أن LINQ لن يتم تطويرها في المستقبل. 3- لو كان المشروع الذي أقوم به كبير و لنقل ERP فيفضل إستخدام EF لتميزها في بعض الجوانب عن LINQ. و إن كان المشروع متوسط أو صغير فيفضل إستخدام LINQ في الوقت الحالي. تحياتي RE: Entity Model vs LINQ_To_SQL - Sajad - 18-11-13 جميل جدا أما بالنسبة لسؤالك (رأي الشخصي) انها اسهل من الـEF من ناحية التعقيد فلو قمت بفتح EF فارغة وبدأت باضافة الكينونات اليها ومن ثم أنشأت منها قاعدة بيانات SQL ستجد الكثير من النماذج على الـSolution Explorer بينما في الـLinq ستجد فقط ملف الـDBML ولن يزعجك كثرة الاشياء وأيضا استعلامات LINQ ليست حكرا فقط في التعامل مع قاعدة البيانات بل يتعدى ذلك الى التعامل مع ملفات xml وكائنات وقوائم ومصفوفات وهكذا... وإن أردت المزيد عن LINQ To SQL يمكنك قراءة الكتيب المتواضع الذي أعددته من هذا الرابط على موقع Kutub: Linq To SQL واعطيك شيء مهم جدا هو أنه هنالك شيء اسمه LINQ To Entities أي يمكن من خلال تقنية Linq واستعلاماته أن تتعامل مع هذه الـكينونات.... شيء جميل أليس كذلك ![]() تحياتي RE: Entity Model vs LINQ_To_SQL - hoob computer - 18-11-13 جميل جداً ![]() ممنون منك سجاد. تحياتي RE: Entity Model vs LINQ_To_SQL - البراء - 19-11-13 بسم الله الرحمن الرحيم السلام عليكم اخي الفاضل / سجاد محمد باقر بارك الله فيك انت والسائل على التوضيح المفيد ومنذو فترة أود ان اتعلم LINQ To SQL وكتابك مفيد جدا ولكن انا لا اجيد التعامل مع C# لذلك أود منكم اذا كان لديكم كتاب يوضح كيف التعامل مع LINQ To SQL من خلال VB.NET بارك الله فيك RE: Entity Model vs LINQ_To_SQL - Sajad - 19-11-13 إقتباس :بسم الله الرحمن الرحيم وعليكم السلام اخي العزيز وفيك بارك الله حاليا انا بصدد تحويل الكتاب الى لغة VB.NET وحال انتهائي باذن الله سوف افرد موضوع خاص اطرح فيه هذا الكتاب تحياتي |