سؤال

ولدي عنصر متجهة إلى كيان (الاتصال) الذي يعرض بعض خصائص الملاحة.

وأريد أن على بعض الإجراءات (أي زر "تحميل الأطفال")، يجب تحميل الاتصال لجميع الأطفال والأحفاد مثل يمكنني أن أفعل مع ObjectQuery.Include قبل التنفيذ، مثال (الزائفة):

DirectCast(element.DataContext, Contact).SubContacts. _
   Include("Address.State"). _
   Load()

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

وأعتقد أن هذا ينبغي من كان جزءا من الكيان-إطار بطريقة أو بأخرى.

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

المحلول

وأنا لست إيجابية أتابع هذه المسألة، ولكن اسمحوا لي أن تحقق:

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

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

وكل إشارة في إطار الكيان ديها طريقة تسمى CreateSourceQuery . فإنها ترجع استعلام كائن، بحيث يمكنك استخدامها للقيام بذلك (آسف، C #):

AlreadyLoadedContact.SubContacts.CreateSourceQuery().Include("Address.State").ToList();

والدعوة ToList ينفذ الاستعلام، وسوف إطار الكيان اتخاذ جميع النتائج وتلقائيا إضافتها لك SubContacts EntityCollection.

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