Declaration de variables pour LINQ

Le
Don Juan
Bonjour à tous, j'ai ce bout de code:

Dim var1 = From Personal In db1.Data _
Select Personal.Name

Marche bien, mais il me faut seulement déclarer la variable pour l'utiliser
dans un IF ou Case,
quelque chose comme cela:

Dim var1 AS (DataType)
If x=1 then
var1 =From Personal In db1.Data _
Select Personal.Name
Else
var1 =From Personal In db1.DataOld _
Select Personal.Name
End If

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrice
Le #18690461
Bonjour,

D'une façon générale, placer la souris sur la variable pour voir quel est
son type. Ici cela devrait être IQueryable(Of String) car le select
sélectionne un champ unique de type string...

--
Patrice

"Don Juan" discussion :
Bonjour à tous, j'ai ce bout de code:

Dim var1 = From Personal In db1.Data _
Select Personal.Name

Marche bien, mais il me faut seulement déclarer la variable pour
l'utiliser dans un IF ou Case,
quelque chose comme cela:

Dim var1 AS (DataType)
If x=1 then
var1 =From Personal In db1.Data _
Select Personal.Name
Else
var1 =From Personal In db1.DataOld _
Select Personal.Name
End If

Merci d'avance


Don Juan
Le #18691651
Merci
J'ai un problème, dès que j'utilise cela je n'arrive pas À acceder aux
elements.
Normalement je peux faire cela:

Dim var1 = From Personal In db1.Data _
Select Personal.Name
text1.text = var1.firstordefault.Name

Avec la déclaration Iqueryable je ne peux pas acceder au champ Name (par
example).

Merci d'avance.


"Patrice" news:
Bonjour,

D'une façon générale, placer la souris sur la variable pour voir quel est
son type. Ici cela devrait être IQueryable(Of String) car le select
sélectionne un champ unique de type string...

--
Patrice

"Don Juan" discussion :
Bonjour à tous, j'ai ce bout de code:

Dim var1 = From Personal In db1.Data _
Select Personal.Name

Marche bien, mais il me faut seulement déclarer la variable pour
l'utiliser dans un IF ou Case,
quelque chose comme cela:

Dim var1 AS (DataType)
If x=1 then
var1 =From Personal In db1.Data _
Select Personal.Name
Else
var1 =From Personal In db1.DataOld _
Select Personal.Name
End If

Merci d'avance






Jérémy Jeanson
Le #18692181
Bonjour Don Juan,

As tu bien fais attention à ce que Patrice a écrit, il t'a donné comme
réponse un type généric IQueryable(Of String). Si tu utilise IQuerible
et non pas IQueruable(Of TonType) tu vas inévitablement te retrouver
avec un type objet et non pas avec ton type personnel. Donc tu ne
pourras pas utiliser ses accesseur comme ta propriété Name par exemple.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Patrice
Le #18692861
Idem si tu regardes la définition de FirstOrDefault tu verras que cela
retourne directement une chaine car tu as sélectionné une seule colonne :
- si la requête LINQ sélectionne une seule colonne, elle retourne
directement le type de cette colonne
- si la requête LINQ sélectionne plusieurs colonnes, elle retourne un objet
qui contient les différents membres correspondants...

Ici tu peux donc faire directement :

Text1.Text=Var1.FirstOrDefault ' Retourne directement la valeur de la SEULE
colonne sélectionnée

--
Patrice

"Don Juan" discussion :
Merci
J'ai un problème, dès que j'utilise cela je n'arrive pas À acceder aux
elements.
Normalement je peux faire cela:

Dim var1 = From Personal In db1.Data _
Select Personal.Name
text1.text = var1.firstordefault.Name

Avec la déclaration Iqueryable je ne peux pas acceder au champ Name (par
example).

Merci d'avance.



Publicité
Poster une réponse
Anonyme