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 également. Et comment puis-je les recevoir? IQueryable ne fonctionnera pas je pense. Et cela s'appelle Linq to SQL - non?
Réponses:
Comme les autres réponses l'ont indiqué, vous devez utiliser un type anonyme.
En ce qui concerne la syntaxe, je préfère de loin le chaînage de méthodes. L'équivalent du chaînage de la méthode serait: -
AFAIK, la syntaxe déclarative LINQ est convertie en une chaîne d'appels de méthode similaire à celle-ci lorsqu'elle est compilée.
METTRE À JOUR
Si vous voulez l'objet entier, il vous suffit d'omettre l'appel à
Select()
, c'est- à -direla source
Vous pouvez utiliser des types anonymes par exemple:
la source
select new { Diff = (DateTime.Now - debt.ClaimDate), Amount = debt.Amount}
. Le formulaire utilisé dans la réponse est un raccourci, où le nom de membre dans l'expression d'initialisation est utilisé comme nom de champ de type anonyme. Par exemple,new {res.EMAIL, res.USER_NAME}
est un raccourci pournew {EMAIL = res.EMAIL, USER_NAME = res.USER_NAME}
. Dans le cas où il y a une expression, comme dans votre cas avec les dates - le raccourci ne s'applique pas, d'où une erreur du compilateur.OU vous pouvez utiliser
Explication:
Sélectionnez l'employé dans la base de données comme res.
Filtrez 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 {}
la source