Voici donc le scénario: j'ai une série de classes de référentiel différentes qui peuvent chacune utiliser un contexte de données isolé, ou un contexte partagé. Dans les cas où un contexte isolé est utilisé, je veux ajouter une méthode à la classe de base qui me permettra de spécifier le lambda comme paramètre, avoir cette expression soit exécutée par le contexte isolé du référentiel choisi et retourner un résultat IQueryable . À quoi ressemblerait la signature de la méthode, et comment passer l'expression au contexte?LINQ: Passer l'expression lambda comme paramètre à exécuter et renvoyer par la méthode
J'ai besoin que la solution soit aussi générique que possible car tout objet/tableau de modèle possible pourrait être utilisé.
Voici essentiellement ce que je cherche à faire:
IAssetRepository repo = new AssetRepository(true); // true indicates isolated context
var results = repo.ExecuteInContext<SomeType>(SomeTable.Where(x =>
x.SomeProp.Equals(SomeValue)));
Lorsque vous essayez votre première suggestion, je reçois une erreur dans la compilation du tableau t = GetTable (); line: T doit être un type de référence pour pouvoir l'utiliser comme paramètre –
nevermind, je l'ai. nécessaire d'ajouter "where T: class" à la fin de la déclaration de méthode. –
Désolé, j'ai raccroché au travail :) – leppie