90 votes

Syntaxe Linq - Sélection de plusieurs colonnes

Ceci est ma syntaxe Linq que j'utilise pour mon modèle d'entité

 IQueryable<string> objEmployee = null;
  objEmployee = from res in _db.EMPLOYEEs
  where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
  select res.EMAIL;
 

Comment puis-je sélectionner plusieurs colonnes? Comme je veux sélectionner res.ID aswell. Et comment puis-je les recevoir? IQueryable ne fonctionnera pas je pense. Et cela s'appelle Linq to SQL - pas vrai?

177voto

Adam Ralph Points 15420

Les autres réponses ont indiqué, vous devez utiliser un type anonyme.

Aussi loin que la syntaxe est concerné, personnellement, je préfère de loin la méthode de chaînage. Le chaînage de méthode équivalente): -

var employee = _db.EMPLOYEEs
    .Where(x => x.EMAIL == givenInfo || x.USER_NAME == givenInfo)
    .Select(x => new { x.EMAIL, x.ID });

Autant que je sache, le déclaratif syntaxe LINQ est converti à un appel de méthode de la chaîne semblable à celui où il est compilé.

Mise à JOUR

Si vous voulez l'ensemble de l'objet, alors vous avez juste à omettre l'appel à Select(), c'est à dire

var employee = _db.EMPLOYEEs
    .Where(x => x.EMAIL == givenInfo || x.USER_NAME == givenInfo);

72voto

Ivan Danilov Points 5719

Vous pouvez utiliser des types anonymes, par exemple:

   var empData = from res in _db.EMPLOYEEs
                where res.EMAIL == givenInfo || res.USER_NAME == givenInfo
                select new { res.EMAIL, res.USER_NAME };
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X