سؤال

النظر في البنية التالية:

  • قاعدة الكائن 'كيان'
  • مشتقة كائن دخول:قاعدة'
  • و اشتقاق الكائن '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) )

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

يجب أن يكون هناك حل أفضل

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