عند اختيار ORM ، LINQ to SQL أو LINQ إلى كيانات أفضل من NHibernate?

StackOverflow https://stackoverflow.com/questions/71955

  •  09-06-2019
  •  | 
  •  

سؤال

أجد أنني يمكن أن تفعل أكثر مع NHibernate ، وحتى القلعة من مع Linq إلى كيانات أو linq to SQL.

هل أنا مجنون ؟

هل كانت مفيدة؟

المحلول

لا أنت لست مجنون.nHibernate هو كامل أو مخطط, Linq to SQL و Linq إلى كيانات لا تنفذ كل ما كنت تتوقع من أو مخطط يستهدف مختلف قليلا مجموعة من المطورين.

ولكن لا تدع التي وضعت لك ينق على الرغم من.Linq لا يزال فكرة جيدة..محاولة Linq إلى nHibernate :-)

نصائح أخرى

الكبير السلبيات NHibernate ، القلعة ، وما إلى ذلك ، هو أنهم ليسوا بالضبط خفيفة الوزن (خصوصا NHibernate.)

Linq to SQL هو جيد بالنسبة خفيفة الوزن ، وقلة استخدام ORM.

لقد استعملت كل NHibernate و LINQ to SQL.من وجهة نظري يعتمد على المشروع ، إذا كنت بحاجة إلى شيء سريع, وأود أن اختيار L2S, انها بسيطة جدا لخلق dbml تعيين والبدء في استخدامه.إذا أنا على تطوير المزيد من إجراءات عالية المستوى في المؤسسة الحل سوف تذهب مجربة و موثوق بها ORM - NHibernate ، أجد تسجيل المعاملات الميزات سهلة الاستخدام.

LINQ to SQL نسبيا قصيرة منحنى التعلم ، NHibernate بكثير انحدارا من منحنى التعلم.

LINQ to SQL فقط يدعم SQL Server, حتى إذا كان لديك قاعدة بيانات Oracle ثم قرار بالفعل - NHibernate.

أوصي التحقق من http://www.summerofnhibernate.com/ ممتازة قطات للشاشة على التعلم NHibernate.

شيء واحد أن نأخذ في الاعتبار هو أن NHibernate يمكن أن تكون مطلقة الخنازير إلى تكوين - وخاصة منذ تقوم أساسا على التكوين XML الملفات بسبب جذوره الأصلية السبات.

يجيد NHibernate يذهب بعض طريقة صنع هذا أقل إيلاما.

Linq بالتأكيد على الرغم من تناسبها مع العامة 'الطريق' التي .صافي يعمل.

Blockquote Linq بالتأكيد على الرغم من تناسبها مع العامة 'الطريق' التي .صافي يعمل

ياه هذا النوع من الشعور يخيفني.RAD الاشياء التي بنيت في .صافي غير كيف دوت نت يعمل, انها مجرد مجموعة أداة للحصول على نماذج تصل..صافي يسمح لنا أن نفعل كامل DDD التطبيقات ، w/ مستويات عالية من التماسك ، seperations من المخاوف ، ويسمح لنا أن أكتب تنفصل رمز ، على الرغم من كل المحاولات ms يجعل بعض الأشياء.أنا لا أوافق بشدة ذلك .صافي يحب أن يكون إلى جانب ، certian أدوات مثل أن يكون مقرونا ، سوف تشمل linq to sql في هذه المعمعة.linq to sql يدمر فكرة وجود منفصلة نموذج المجال.أنا ارتد في الفكر باستخدام مخطط قاعدة البيانات الأساسية نموذج الكائنات.المناسبة ORM أدوات تسمح لنا نموذج لنا المجال أولا ، ثم ربط لدينا قواعد البيانات العلائقية إلى هذه النماذج.وليس العكس.

لم أحاول إطار الكيان, ولكن أنا بالتأكيد سوف يوصي NHibernate على Linq to SQL;السبب الأكبر أستطيع أن أعطي هو مجرد تحكم.Linq to SQL يحب أن يكون الكثير من السيطرة على كل شيء, تحميل الكائن وصيانة جميع أنواع تتبع المعلومات حول الكائن.إذا كنت تسلسل/إلغاء تسلسل تتبع المعلومات يمكن أن تضيع أشياء غريبة يمكن أن يحدث عند حفظ ذلك مرة أخرى.NHibernate يعمل كمستودع يجب تسليمه أيا كان الكائن الذي تريد (أن تكوين فهم بالطبع) ، ووضعه بعيدا في قاعدة البيانات بغض النظر عن ما قمت به مع ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top