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?
Comme l’ont indiqué les autres réponses, vous devez utiliser un type anonyme.
En ce qui concerne la syntaxe, je préfère personnellement de loin 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 });
Autant que je sache, la syntaxe déclarative LINQ est convertie en une chaîne d’appel de méthode semblable à celle-ci lorsqu’elle est compilée.
UPDATE
Si vous voulez l’objet entier, il vous suffit d’omettre l’appel de 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:
Sélectionnez l'employé de la base de données en tant que.
Filtrer les détails de l'employé selon la condition Where.
Sélectionnez les champs obligatoires de l'objet employé en créant un objet anonyme à l'aide de new {}.