سؤال

كيفية تنفيذ نمط المستودع مع linqtoentities كيفية تنفيذ الواجهة

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

المحلول

أفعل ما يلي:

تحتوي طبقة الخدمة على كائنات الأعمال الخاصة بي.يتم تمريره إلى المستودع عبر عكس التحكم (Castle Windor هو خياري المعتاد).المستودع مسؤول عن التعيين بين كائنات الأعمال وكائنات إطار عمل الكيان الخاص بي.

مزايا:ليس لديك أي مشاكل مع حالة الكائن أو سياق كائنات EF لأنك تقوم فقط بتحميلها أثناء معالجة البيانات من جانب المستودع.يؤدي هذا إلى تسهيل الموقف عند تمريرها إلى WCF/Web-Services.

العيوب:أنت تفقد بعض وظائف التتبع في Entity Framework، ويجب عليك تحميل كائن البيانات يدويًا (كائنات ef)، ربما إذا لزم الأمر يدويًا لإجراء عمليات التحقق من التزامن المتفائل (عبر الطابع الزمني على كائن الأعمال على سبيل المثال).

لكن عمومًا أفضّل هذا الحل، لأنه من الممكن تغيير المستودع لاحقًا.إنه يسمح لي بالحصول على مستودعات مختلفة (على سبيل المثال، يستخدم كائن المستخدم الخاص بي بالفعل ASPNetAuthenticationRepository بدلاً من EntityFrameworkRepository) ولكن بالنسبة لطبقة الخدمة الخاصة بي فهو شفاف.

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

نصائح أخرى

يعجبني هذا تقريبًا باستثناء أشياء "Castle Windor".ألق نظرة على openticket.codeplex.com

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