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

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

سؤال

إذا كان لدي فئة مماثلة لهذا:

public class Person
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public Pet myPet { get; set; }
}

عندما أقوم بإنشاء موثق نموذج مخصص، لن يتم إرسال المنشور من النموذج الخاص بي في حيوان أليف، وسوف يرسل بيانات مثل هذا: الاسم الأول: "myfirstname" اسم العائلة: "mylastname" mypet: "myPetsname"

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

سؤالي هو، في حالة أن تفاعل الموثق النموذجي مع طبقة الخدمة أو طبقة المستودع أو يجب أن تسترجع الحيوانات الأليفة؟ المشكلة في طبقة الخدمة هي أنه لا يبدو لي إمكانية الوصول إلى ModelState عند تهيئة الخدمة: ((this.modelstate) يعطيني خطأ)

_petService = new PetService(new ModelStateWrapper(this.ModelState));

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

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

المحلول

ما أقوم به هو استخدام نموذج عرض / عرض تقديمي بدلا من ربط كائنات الأعمال. تذكر أن المستخدمين الخاص بك قد يدخلون قيما غير صالحة، وستحتاج إلى إعادة عرض هذه القيم غير الصالحة للمستخدم عند مطالبةهم بتصحيح أخطائهم. ولكن الكائنات التجارية "الحقيقية" ربما لن تقبل قيم غير صالحة. لذلك يجب أن يسمح نموذج العرض بإدخال أي مستخدم، حتى إدخال كائنات العمل لن يقبل.

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

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