إطار الكيان:كيفية إرجاع قاعدة نوع من L2E
-
01-07-2019 - |
سؤال
النظر في البنية التالية:
- قاعدة الكائن 'كيان'
- مشتقة كائن دخول:قاعدة'
- و اشتقاق الكائن 'CancelledEntry:دخول'
في EntitySQL أستطيع أن أكتب ما يلي:
[...] where it is of (only MyEntities.Entry) [...]
العودة فقط كائنات من نوع دخول أي كيان أو CancelledEntry.
في linq to sql, الأمر التالي سيعود كائنات من نوع دخول CancelledEntry.
EntityContext.EntitySet.OfType<Entry>()
ما هي الجملة/وظيفة لاستخدام العودة فقط كائنات من نوع الإدخال ؟
المحلول
لماذا لا تطبق طريقة تمديد على IQueryable< دخول > دعا ApplyBaseEntryFilter() التي من شأنها أن تطبيق هذا الفلتر و إعادة IQueryable< دخول >.
هذا هو مثال على كيفية إعادة استخدام استعلام linq شظايا.استخدام طرق الإرشاد على IQueryable< الكيان > هو وسيلة رائعة لإعادة استخدام استعلامات كما يجب نفيه rneed نسخ ولصق الاستعلام شظايا في جميع أنحاء التطبيق الخاص بك ، ونأمل أن يساعد.
نصائح أخرى
حسنا, لقد وجدت حلا جزئيا:
EntityContext.EntitySet.OfType<Entry>().Where( obj => !(obj is CancelledEntry) )
هذا هو تماما فظيعة ومع ذلك ، منذ إن خلق جديد اشتقاق كائن يجب أن تذهب في جميع الاستفسارات على وجه التحديد إضافة شرط إلى إزالته.
يجب أن يكون هناك حل أفضل