Bonjour à tous,
Je suis débutant en C# et notamment tout ce qui touche à Linq etc...
J'ai une classe qui va chercher les données dans ma base de données, les transforme en entité, et me les retourne.
Prenons un exemple:
=> ça fonctionne bien
Code c# : 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Appli.Test.EL; namespace Appli.Test.DAL { public class UserManager { private MyEntities Context; public UserManager() { Context = new MyEntities(); } public UserEntity Get(long id) { return Context.user .Where(u => u.id_user.Equals(id)) .Select(u => new UserEntity { Id = u.id_user, Lastname = u.lastname, Firstname = u.firstname }) .FirstOrDefault(); } public List<UserEntity> GetAll() { return Context.user .Select(u => new UserEntity { Id = u.id_user, Lastname = u.lastname, Firstname = u.firstname }) .ToList(); } } }
On peut voir qu'entre Get et GetAll, j'ai une partie commune qui est la création de mon entité. Je pensais pouvoir faire une fonction, histoire de factoriser un peu mon code, et dans des cas un peu plus complexe, ne pas oublié une propriété d'une méthode à l'autre.
J'ai donc essayé ceci:
=> ça ne fonctionne plus
Code c# : 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 UserEntity Get(long id) { return Context.user .Where(u => u.id_user.Equals(id)) .Select(u => ToEntity(u)) .FirstOrDefault(); } public List<UserEntity> GetAll() { return Context.user .Select(u => ToEntity(u)) .ToList(); } private static UserEntity ToEntity(user user) { return new UserEntity { Id = user.id_user, Lastname = user.lastname, Firstname = user.firstname }; }
J'ai aussi essayé de le faire en passant le paramètre par référence (avec ref devant) mais sans succès! Je ne comprends pas pourquoi ça ne marche pas? Où ai je fais une erreur s'il vous plait?
EDIT - IntelliTrace:
LINQ to Entities ne reconnait pas la méthode "Appli.Test.EL.UserEntity ToEntity(Appli.Test.DAL.user) et cette dernière ne peut pas être traduite en expression de magasin.....
Partager