Możliwa konwersja IQueryable <Derived> do IQueryable <Base>?

Wiem o kowariancji i wiem, że na ogół nie będzie to możliwe w C # do wersji 4.0.

Zastanawiam się jednak nad konkretnym przypadkiem. Czy jest jakiś sposób na uzyskanie konwersjiIQueryable<Derived> doIQueryable<Base> tworząc w jakiś sposób klasę opakowania, która w rzeczywistości nie wykonuje zapytania, ale może faktycznie „przejść”.Where<>() połączenie?

Mój przypadek użycia polega na tym, że próbuję radzić sobie ze schematem bazy danych, który ma wiele podobnych tabel. Większość pól jest wspólna i wiele wspólnych pól wymaga zapytania na każdej tabeli. Używam LinqToSql. Miałem nadzieję uniknąć duplikowania wszystkich zapytań dla każdej tabeli.

questionAnswers(2)

yourAnswerToTheQuestion