Existe-t-il un moyen d'obtenir l'intégralité du contenu d'une seule colonne à l'aide d'Entity Framework 4 ? La même chose que cette requête SQL :
SELECT Name FROM MyTable WHERE UserId = 1;
Existe-t-il un moyen d'obtenir l'intégralité du contenu d'une seule colonne à l'aide d'Entity Framework 4 ? La même chose que cette requête SQL :
SELECT Name FROM MyTable WHERE UserId = 1;
Vous pouvez utiliser les .Select()
de LINQ pour le faire. Dans votre cas, cela donnerait quelque chose comme :
string Name = yourDbContext
.MyTable
.Where(u => u.UserId == 1)
.Select(u => u.Name)
.SingleOrDefault(); // This is what actually executes the request and return a response
Si vous attendez plus d'une entrée en réponse, vous pouvez utiliser .ToList()
place pour exécuter la requête. Quelque chose comme ça, pour obtenir le nom de tous ceux qui ont 30 ans :
string[] Names = yourDbContext
.MyTable
.Where(u => u.Age == 30)
.Select(u => u.Name)
.ToList();
Je suis un noob complet sur Entity mais c'est comme ça que je le ferais en théorie...
var name = yourDbContext.MyTable.Find(1).Name;
Si c'est une clé primaire.
-- OU --
var name = yourDbContext.MyTable.SingleOrDefault(mytable => mytable.UserId == 1).Name;
-- OU --
Pour toute la colonne :
var names = yourDbContext.MyTable
.Where(mytable => mytable.UserId == 1)
.Select(column => column.Name); //You can '.ToList();' this....
Mais "oh Geez Rick, qu'est-ce que je sais..."
Si vous récupérez un seul élément alors, vous devez utiliser select avant votre FirstOrDefault()/SingleOrDefault() . Et vous pouvez utiliser un objet anonyme des propriétés requises.
var name = dbContext.MyTable.Select(x => new { x.UserId, x.Name }).FirstOrDefault(x => x.UserId == 1)?.Name;
La requête ci-dessus sera convertie en ceci :
Select Top (1) UserId, Name from MyTable where UserId = 1;
Pour plusieurs articles, vous pouvez simplement enchaîner Sélectionner après Où :
var names = dbContext.MyTable.Where(x => x.UserId > 10).Select(x => x.Name);
Utiliser un objet anonyme dans Sélectionnez si vous avez besoin de plusieurs propriétés.
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.