سؤال

أنا حاليا التعلم أكثر قليلا عن Linq إلى كيانات خاصة في هذه اللحظة عن حريصة تحميل كسول.

proxy.User.Include("Role").First(u => u.UserId == userId)

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

كنت تحت انطباع أن هذا تم تصميمه لجعل الأمور بقوة النوع - لماذا يجب علي أن أكتب "دور"?يبدو أنني إذا غيرت اسم الجدول ثم هذا لن إنشاء خطأ في التجميع...

خطأ بلدي هو هذا:

The specified type member 'Roles' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

الحل أدناه تسمح لي الآن أن كتابة التعليمات البرمجية:

proxy.User.Include(u => u.Role).First(u => u.UserId == userId)

وهو أجمل بكثير!

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

المحلول

  1. وتشمل هو تلميح حريصة تحميل, فإنه لا يجبر حريصة التحميل.
  2. دائما التحقق من IsLoaded العقار قبل الرجوع شيء كنت آمل كانت حريصة تحميلها من قبل تشمل.
  3. هناك طرق لوضع بقوة كتبته الكائن في تضمين البيان ، ولكن لا يوجد حل لهذه المشكلة في الخروج من مربع مع إطار الكيان.شيء مثل جوجل:إطار الكيان ObjectQueryExtension تشمل
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top