Voici une expression de requête :
var users = (from a in dc.Benutzer
select new { a.Name, a.Age, a.Occupation }).ToList();
Ou en notation par points :
var users = dc.Benutzer.Select(a => new { a.Name, a.Age, a.Occupation })
.ToList();
Notez que cela renvoie une liste d'un type anonyme plutôt que des instances de Benutzer
. Personnellement, je préfère cette approche à la création d'une liste d'instances partiellement remplies, car alors toute personne traitant les instances partielles doit vérifier d'où elles proviennent pour savoir ce qu'il y aura réellement.
EDIT : Si vous voulez vraiment construire des instances de Benutzer
et que LINQ ne vous permet pas de le faire dans une requête (je ne sais pas pourquoi), vous pouvez toujours le faire :
List<Benutzer> users = dc.Benutzer
.Select(a => new { a.Name, a.Age, a.Occupation })
.AsEnumerable() // Forces the rest of the query to execute locally
.Select(x => new Benutzer { Name = x.Name, Age = x.Age,
Occupation = x.Occupation })
.ToList();
c'est-à-dire utiliser le type anonyme juste comme une DTO. Notez que l'objet retourné Benutzer
Les objets ne seront cependant pas associés à un contexte.