Hier ist also das Szenario: Ich habe eine Reihe von verschiedenen Repository-Klassen, die jeweils einen isolierten Datenkontext oder einen gemeinsamen Kontext verwenden können. In den Fällen, in denen ein isolierter Kontext verwendet wird, möchte ich der Basisklasse eine Methode hinzufügen, die es mir ermöglicht, das Lambda als Parameter anzugeben, diesen Ausdruck durch den isolierten Kontext des gewählten Repositorys ausführen zu lassen und ein IQueryable-Ergebnis zurückzugeben. Wie würde die Methodensignatur aussehen, und wie kann ich den Ausdruck an den Kontext übergeben?
Die Lösung muss so allgemein wie möglich sein, da alle möglichen Modellobjekte/Tabellen verwendet werden können.
Hier ist im Grunde, was ich zu tun suchen:
IAssetRepository repo = new AssetRepository(true); // true indicates isolated context
var results = repo.ExecuteInContext<SomeType>(SomeTable.Where(x =>
x.SomeProp.Equals(SomeValue)));