Salut,
J'ai décidé de me mettre à jour (eh oui, mieux vaut tard que jamais) et de me lancer dans l'étude de linq.
Bien entendu je butte sur certaines choses.
Généralement je finis par trouver une solution, mais là je coince et je ne trouve pas ce que je ne fais pas bien.
Soit une base de donnée MSAccess contenant, entre autre, une table "point" qui contient, entre autre une colonne "NoPoint" et une autre colonne "NoPointNum".
La colonne "NoPoint" contient du string et "NoPointNum" contient du int.
Ne me demandez pas pourquoi, mais dans une autre table un champs contient la concaténation de ces 2 champs (je trouve cela parfaitement illogique mais je dois vivre avec).
Je veux donc trouver en linq comment créer mon where avec la concaténation de ces 2 champs (qui doivent former un string) pour le comparer.
Vu que je vais devoir faire plusieurs recherche, je charge tous les points en une fois par
var queryPoints = from point in points select point;
qui fonctionne bien.
Ensuite, selon les besoin, je cherche à extraire un point particulier.
Pour cela j'ai essayé plusieurs choses mais je n'y arrive pas.
J'ai donc décidé de découper le problème.
Je cherche d'abord à trouver un point qui n'a qu'un numéro à chercher, ce qui me permet de ne pas m'occuper au départ de la concaténation.
J'ai donc écrit
var queryPoint = queryPoints.Where(point => point.NoPointNum.ToString() == ligne.NumeroPoint1);
point.NoPointNum étant un int et ligne.NumeroPoint1 étant un string, j'essaye de convertir le int en string, et c'est là que ça coince.
Je reçois "Fonction « CONVERT » non définie dans l'expression."
J'ai essayé
var queryPoint = queryPoints.Where(point => Convert.ToString(point.NoPointNum) == ligne.NumeroPoint1);
mais j'ai le même résultat.
Comment dois-je faire pour convertir ce champs et pour concaténer les 2 ?
En fait, je cherche à traduire la ligne suivante en linq
where (point.NoPoint & point.NoPointNum == ligne.NumeroPoint1)
Merci de vos z'avis z'avisés,
Jean-Marc
Partager