Linq Syntax – Sélection de plusieurs colonnes

Ceci est ma syntaxe Linq que j’utilise dans mon modèle d’entité

IQueryable 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 – non?

Comme les autres réponses l’ont indiqué, vous devez utiliser un type anonyme.

En ce qui concerne la syntaxe, je préfère personnellement le chaînage des méthodes. La méthode de chaînage équivalente serait: –

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

Après la compilation, la syntaxe LINQ déclarative est convertie en une chaîne d’appel de méthode similaire à celle-ci.

METTRE À JOUR

Si vous voulez l’object entier, il vous suffit d’omettre l’appel à Select() , c.-à-d.

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

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 }; 
  var employee = (from res in _db.EMPLOYEEs where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo) select new {res.EMAIL, res.USERNAME} ); 

OU vous pouvez utiliser

  var employee = (from res in _db.EMPLOYEEs where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo) select new {email=res.EMAIL, username=res.USERNAME} ); 

Explication:

  1. Sélectionnez un employé dans la firebase database en tant que res.

  2. Filtrer les détails de l’employé selon la condition où.

  3. Sélectionnez les champs obligatoires de l’object employé en créant un object anonyme à l’aide de new {}