سؤال

كيف يمكنني استخدام وحدة نمط العمل في السيناريو التالي:

أنا أكتب تطبيق winforms.لدي شاشة واحدة حيث يمكن للمستخدم تعديل أمر واحد.في هذه الشاشة يمكن للمستخدم فتح نموذج آخر لاختيار شركة التوصيل.يمكن للمستخدم أيضًا إضافة/تعديل شركات التوصيل الموجودة في هذا النموذج الفرعي قبل إجراء التحديد.

كيف يمكنني تنفيذ هذا السيناريو باستخدام وحدة نمط العمل؟لدي حاليًا وحدة عمل واحدة لشاشة إدخال الطلب.كانت فكرتي الأولى هي تضمين النموذج الفرعي في وحدة العمل هذه أيضًا.المشكلة هي أن تغييرات شركة التوصيل يجب أن تستمر عندما تكون في النموذج الفرعي.ولكن عندما أستمر في إجراء تغييرات على شركات التوصيل، فسيؤدي ذلك أيضًا إلى استمرار التغييرات في الطلب.

هل يجب أن أقوم بإنشاء وحدة عمل ثانية لأي تعديلات على شركات التوصيل؟في هذه الحالة، كيف يمكنني جعل التغييرات في وحدة العمل تلك مرئية في وحدة العمل الأولى؟

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

المحلول

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

نصائح أخرى

لدي حاليًا وحدة عمل واحدة لشاشة إدخال الطلب.المشكلة هي أن تغييرات شركة التوصيل يجب أن تستمر عندما تكون في النموذج الفرعي.

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

  1. OrderEditForm و DeliveryCompanyCollectionEditForm يجب أن تشارك نفس الشيء DeliveryCompanyRepository التي تشترك في نفس وحدة العمل.

  2. DeliveryCompanyRepository يجب إرجاع الشركات من قاعدة البيانات + الشركات التي تمت إضافتها خلال وحدة العمل.

بهذه الطريقة يجب أن يكون كائن شركة التوصيل الجديد متاحًا OrderEditForm دون تغييرات مستمرة.

هل يجب أن أقوم بإنشاء وحدة عمل ثانية لأي تعديلات على شركات التوصيل؟في هذه الحالة، كيف يمكنني جعل التغييرات في وحدة العمل تلك مرئية في وحدة العمل الأولى؟

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

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