ausgegeben und zurückgegeben wird. Hier ist das Szenario: Ich habe eine Reihe verschiedener 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 erlaubt, das Lambda als Parameter anzugeben, diesen Ausdruck durch den isolierten Kontext des ausgewählten Repositorys ausführen und ein IQueryable-Ergebnis zurückgeben . Wie würde die Methodensignatur aussehen und wie soll der Ausdruck an den Kontext übergeben werden?LINQ: Lambda-Ausdruck als Parameter übergeben, der von der Methode
Ich brauche die Lösung so allgemein wie möglich zu sein, da jedes mögliche Modellobjekt/Tabelle verwendet werden könnte. Hier
ist im Grunde, was ich zu tun Suche:
IAssetRepository repo = new AssetRepository(true); // true indicates isolated context
var results = repo.ExecuteInContext<SomeType>(SomeTable.Where(x =>
x.SomeProp.Equals(SomeValue)));
Parameter zu übergeben, wenn Ihr erster Vorschlag versucht, ich einen Fehler der Tabelle t zusammengestellt = GetTable (); line: T muss ein Referenztyp sein, um es als Parameter zu verwenden –
vergiss es, ich habe es. benötigt, um "where T: class" am Ende der Methodendeklaration hinzuzufügen. –
Entschuldigung, wurde bei der Arbeit aufgehängt :) – leppie