Вот выражение запроса:
var users = (from a in dc.Benutzer
select new { a.Name, a.Age, a.Occupation }).ToList();
Или в точечной записи:
var users = dc.Benutzer.Select(a => new { a.Name, a.Age, a.Occupation })
.ToList();
Обратите внимание, что при этом возвращается список анонимного типа , а не экземпляров Benutzer
. Лично я предпочитаю этот подход, а не создавать список частично заполненных экземпляров, поскольку тогда любой, кто имеет дело с частичными экземплярами, должен проверить, пришли ли они, чтобы выяснить, что на самом деле там будет.
РЕДАКТИРОВАТЬ: Если вы действительно хотите создать экземпляры Benutzer
, а LINQ не позволяет вам сделать это в запросе (я не уверен, почему), вы всегда можете сделать:
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();
т.е. используйте анонимный тип просто как DTO. Обратите внимание, что возвращенные объекты Benutzer
не будут связаны с контекстом.