Bonjour à tous,
j'ai un soucis qui me semble plutôt important.
Je situe le contexte :
Développement d'une application webform en n-tier et avec ADO.net, donc on utilise Entity Framework.
Pour le requétage à la base de données, tout passe par des procédures stockées (et un peu de linq parfois), et donc, jusqu'à présent, pour pouvoir travailler nos objets en sortie de requête on faisait un cast vers un type qu'on définissait nous même (des datacontracts).
Je vais vous montrer mon code, ce sera plus parlant :
Dans mon fichier, j'ai :
et le type retourné c'est donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public static UserInfo GetUserInfos(int userId) { using (var container = new UserEntityContainer()) { return container.GetInfosResponsable(userId).Select(ToUserInfo).FirstOrDefault(); } } puis public static UserInfo ToUserInfo(GetInfosResponsable_Result userInfo) { if (userInfo == null) { return null; } return new UserInfo { userAdress = userInfo.act_adr1, userVille = userInfo.act_ville, userEmail = userInfo.act_email }; }
Donc quand jusque là, tout va bien, je transforme une entité sql en mon objet pour le travailler comme je veux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class UserInfo { public int userId { get; set; } public string userAdress { get; set; } ... }
Mais maintenant je commence à avoir des données croisées, et là je me demande comment faire...
Par exemple, je peux recevoir d'une procédure stockée, les infos d'un utilisateur avec son statut, et le nom de sa voiture etc...
En gros, je ne peux pas faire un datacontract par entité sql que je reçois depuis une procédure stockée... et je me doute bien que mon système est complètement foireux, mais j'ai repris l'existant et finalement, ça sent la refonte...
Peut être auriez vous des idées ? Ou au moins m'indiquer les bonnes pratiques ?
Comment vous faites vous pour utiliser les retours d'entité ?
Vous auriez des liens ? des bonnes pratiques ?
Merci par avance
Julien
Partager