Bonjour,
nous utilisons actuellement dans notre projet l'Entity Framework 4. Nous avons ainsi un modèle EDMX avec plusieurs entités mappés à notre base de données.
Une de nos méthodes métiers utilisant LINQ to Entities met plusieurs secondes à s'exécuter car le traitement est assez lourd, il y a des JOIN et des EXCEPT entre plusieurs listes d'objets (entités X) et beaucoup de boucles FOREACH.
Nous souhaiterions donc déporter ce lourd traitement dans une procédure stockée afin de réduire fortement le temps d'exécution (c'est pour nous la seule solution viable).
Le problème est que certains champs que retournerait cette procédure stockée ne peuvent pas être mappés à notre entité X puisqu'ils n'existent pas dans la table Y correspondante en base. Il s'agit de champs calculés (ou supplémentaires) à partir d'autres champs. Actuellement, ces champs se trouvent dans une classe partielle de l'entité X.
Question :
- y a t'il moyen de mapper les champs se trouvant dans la classe partielle de l'entité X aux colonnes retournées par la procédure stockée ?
- ou alors y a t'il moyen de déclarer ces champs directement dans le modèle EDMX (en tant que propriétés scalaires de l'entité X) et d'indiquer qu'on ne souhaite pas mapper ces champs avec la table Y (sinon VS2010 nous le signale et ne veut pas compiler) ?
Je sais qu'une solution est de passer par un type complexe mais cela ne nous arrange pas du tout car il faudrait réécrire toute la couche métier de cette entité X ainsi que les différentes pages ASPX qui utilisent cette entité. De plus, cette entité X possède des clés étrangères vers d'autres entités dont les propriétés sont susceptibles d'être affichées dans l'IHM Web.
J'ai fait d’innombrables recherches sur le Web (forum anglais notamment) et je n'ai rien trouvé de convaincants, j'espère trouver une réponse ici
Partager