Создание моделей просмотра для представления различных необходимых вам проекций, а затем используйте выбранную проекцию следующим образом.
from c in Cars
select new CarSummary
{
Registration = c.Registration,
...
}
Это создаст запрос, который только выберет необходимые свойства.
отношения будут разрешены, если они представлены в диаграмме контекста данных (dbml)
select new CarSummary
{
OwnerName = c.Owner.FirstName
}
Также вы можете вкладывать объекты внутрь проекции
select new CarSummary
{
...
Owner = new OwnerSummary
{
OwnerName = c.Owner.FirstName,
OwnerAge = c.Owner.Age
}
...
}
Если вы используете одну и ту же проекцию во многих местах, полезно написать следующий метод, чтобы проекция происходила в одном месте.
public IQueryable<CarSummary> CreateCarSummary(IQueryable<Car> cars)
{
return from c in cars
select new CarSummary
{
...
}
}
Это может быть использовано, как это необходимо
public IQueryable<CarSummary> GetNewCars()
{
var cars = from c in Cars
select c;
return CreateCarSummary(cars);
}