LINQ: Przekazywanie wyrażenia lambda jako parametru do wykonania i zwrócenia metodą

Oto scenariusz: mam szereg różnych klas repozytoriów, z których każda może korzystać z izolowanego kontekstu danych lub wspólnego kontekstu. W przypadkach, gdy używany jest kontekst izolowany, chcę dodać metodę do klasy bazowej, która pozwoli mi określić lambdę jako parametr, czy to wyrażenie zostanie wykonane przez wyizolowany kontekst wybranego repozytorium i zwróci wynik IQueryable . Jak wyglądałby podpis metody i jak przekazać wyrażenie do kontekstu?

Potrzebuję rozwiązania, aby było tak ogólne, jak to możliwe, ponieważ można użyć dowolnego możliwego obiektu / tabeli modelu.

Oto w zasadzie to, co chcę zrobić:

IAssetRepository repo = new AssetRepository(true); // true indicates isolated context
var results = repo.ExecuteInContext<SomeType>(SomeTable.Where(x => 
                                              x.SomeProp.Equals(SomeValue)));

questionAnswers(3)

yourAnswerToTheQuestion