نماذج بيانات LINQ متعددة مع نفس الجدول الذي يتم تعيينه في كل تعيين إعادة استخدام

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

سؤال

لقد قمت بتطبيق نمط المستودع على طبقة الوصول إلى البيانات لطبقة الخدمة الحالية.

لدينا نموذج كائن حيث يتم تعيين نفس الفئة "الملاحظات التاريخية" على كائنات mutiple (حاليًا 6 ولكن قريبًا أكثر!)

جزء من أفضل الممارسات لاستخدام LINQ إلى SQL هو عدم وجود ملف DBML واحد لكل جدول في DB ، ولكن بدلاً من ذلك ، لا يحمله ، وبهذه الطريقة لا تحتوي على أداء ضخم عند إنشاء السياق.

لسوء الحظ ، تترك الأماكن المنطقية لفصل الكائنات الملاحظات التاريخية في 5 ملفات DBML مختلفة. عندما ينشئ مولد LINQ الفئات ، فإنه ينشئ فئة مختلفة في مساحة الاسم المختلفة.

لديّ كائن ملاحظة تاريخي في نموذج المجال ، لكنني لا أريد إعادة تخطيط نموذج كائن المجال في نموذج البيانات في كل مرة نستخدم فيها الملاحظات التاريخية.

أحد الأشياء التي لا أريد القيام بها هو كسر "قراءة" البيانات إلى استفسارات متعددة.

هل هناك طريقة يمكنني من خلالها تعيين الملاحظة التاريخية في نماذج بيانات متعددة ولكن اكتب فقط الخرائط مرة واحدة؟

شكرًا

بيت

المحلول

شكرًا للمساعدة ، أعتقد أنني سأعود إلى سياق بيانات واحد لجميع جداول البيانات.

لا يستحق العمل الذي يشارك في إعداد النماذج المتعددة التعقيد الإضافي والهشاشة المحتملة للرمز. الاضطرار إلى كتابة نفس اليد اليسرى ، رمز اليد اليمنى لتعيين الملاحظات التاريخية هو الكثير من العمل والعديد من الأماكن للحفاظ على الكود متزامن.

شكرا يا شباب على الادخال

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

المحلول

جزء من أفضل الممارسات لاستخدام LINQ إلى SQL هو عدم وجود ملف DBML واحد لكل جدول في DB ، ولكن بدلاً من ذلك ، لا يحمله ، وبهذه الطريقة لا تحتوي على أداء ضخم عند إنشاء السياق.

اين سمعت ذلك؟ أنا لا أوافق. يعد DataContext بشكل عام كائن خفيف الوزن إلى حد ما ، بغض النظر عن عدد الجداول.

انظر هنا للحصول على تحليل للمشكلات التي تنطوي على سياقات بيانات متعددة:

LINQ إلى SQL: سياق بيانات مفرد أو سياقات بيانات متعددة؟
http://craftycodeblog.com/2010/07/19/linq-to-sql-single-data-context-or-multiple/

في رأيي ، يجب أن يكون لديك datacontext واحد لكل قاعدة بيانات. هذا من شأنه أن يحل أيضا مشاكل التعيين الخاصة بك.

أنظر أيضا LINQ TO SQL: متعدد / واحد .DBML لكل مشروع؟

نصائح أخرى

يمكن أن يكون أحد الخيارات هو وضع الملاحظات التاريخية في DataContext الخاصة بهم ، والحفاظ على العلاقات بين هذا الكائن وبقية النموذج الخاص بك على أنه "معرفات" (لذلك مجرد مفاتيح أجنبية في DB). هكذا سأفعل ذلك على أي حال.

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