Bonjour,
J'ai besoin de créer une méthode générique qui retournera un string représentant le maximum Id d'une entité. Un filtre devra être appliqué à chaque fois pour réduire mon champ d'action (ChampId LIKE "Filtre%"). Actuellement dans mon code, je fais
Les parties en gras dans le code sont celles que je voudrais rendre générique. Voici la début de la méthode générique que j'ai commencé par écrire:
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 public string GetMaximumCustmerId(string filterExpression) { using (var context = new MyWorkSpaceEntities()) { try { var actualCustId = context.Customers.Where(c => c.CodeClient.StartsWith(filterExpression)) .Select(m => m.CodeClient) .Max(); return actualCustId; } catch (ArgumentNullException) { // .... } catch (InvalidOperationException ex) { // ... } } }
Comment compléter alors ce code pour prendre en compte Max et aussi StartsWith dans la clause where? Pour être un peu plus complet, je travaille avec des entités POCO. Merci.
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 public static string GetMaxIdFromEntities<T>(Expression<Func<T, object>> filterExpression) where T : class { { string maxId = null; using (var context = new MyWorkSpaceEntities()) { var query = context.CreateObjectSet<T>(); query.MergeOption = System.Data.Objects.MergeOption.NoTracking; maxId = query.Where(filterExpression) ?????? // c'est ici mon blocage } } return maxId; } }
Partager