Bonjour à tous,
je suis confronté à un problème depuis un certain temps déjà et ne trouvant pas la solution, je m'en remet à vous.
j'ai un système de recherche nécessitant une jointure sur 2 collections :
ma première collection
Code :
- public class ItemRequest
- {
- public List<string> Categorie { get; set; }
- public List<Utilisation> Destination { get; set; }
- public List<int> Upec { get; set; }
- public ItemRequest()
- {
- Categorie = new List<string>();
- Destination = new List<Utilisation>();
- Upec = new List<int>();
- }
- }
|
ma deuxième collection est issue d'une requête et contient des objets de type Utilisation tel que
Code :
- var uses = from p in t.PRODUIT
- select p.UTILISATION
|
seulement quand je croise le contenu de mes 2 collections, j'obtiens soit un problème de typage que je ne peux résoudre par un cast, soit j'ai un problème sur un contains() ...
ex :
Code :
- if (itemRequest.Destination != null && itemRequest.Destination.Count > 0)
- {
- var matches = (from _u in t.M_UTILISATION
- join _p in t.PRODUIT on _u.ID equals _p.M_UTILISATION.Select(_x => _x.ID)
- where itemRequest.Destination.Contains(_u.ID)
- select _p);
- }
|
ici un Cannot resolve method join (blablabla...) problème de typage....
Code :
- var temp = (from _p in t.PRODUIT
- where (from _u in itemRequest.Destination select _u).Contains(_p.M_UTILISATION.Select(_x=>_x.ID))
- select _p);
- matches.Intersect(temp);
|
et la j'ai une ambigous invocation (blablabla...).
les objets contenus dans itemRequest.Destination et dans M_UTILISATION sont de même type.
Si quelqu'un à l'immense gentillesse de m'avancer un début de solution...
Merci par avance
niko
Message édité par niko59480 le 13-07-2011 à 11:21:11