J'ai une couche DAL qui contient un EF Dbcontext et des entités. J'ai un service qui contient une méthode où je veux faire un simple choix qui vient de la couche logique.Func <T, dynamic> to Func <TEntité, dynamique>
couche: Logic => DalService => DbContext.DbSet.Select (quelque chose)
DAL ne connaît pas tous les modèles DTO. La couche logique ne connaît aucune entité.
Je suis essentiellement essayer de convertir: Func<T, dynamic>
sélecteur à sélecteur Func<TEntity, dynamic>
que je peux utiliser essentiellement sur un DbSet<TEntity>
.
Merci
FWIW, je considérerais votre architecture être quelque chose d'un anti-modèle, et je suppose que vous faites cela pour séparer les préoccupations ou faire les tests unitaires plus facile . Votre couche "Logique" doit accéder directement au contexte DbContext, afin de réduire le besoin d'intergiciels complexes tels que ceux que vous recherchez. Cette couche doit ensuite mapper tous les résultats aux modèles DTO si nécessaire. –
C'est peut-être 'Expression>' au lieu de 'Func '? –
ASpirin
Voir cette question pour une exigence similaire: https://stackoverflow.com/questions/2797261/mutating-the-expression-tree-of-a-predicate-to-target-another-type –