Ответ 1
Проецирование - это когда результат запроса выводится на другой тип, чем запрос. Еще одна статья определила его как: процесс преобразования результатов запроса
Проецирование может быть анонимным, но может также быть конкретным. Если вы пришли из мира SQL, это похоже на столбцы, перечисленные в вашем предложении SELECT
.
Пример выбора подмножества объекта в конкретный тип:
ParentObj.Select(x=> new ParentSlim { ParentID = x.ParentID, Name = x.Name } );
.
Пример слияния с объектом в 3-й анонимный тип:
Примечание: часть select new
- это проекция.
from P in ParentObj.AsQueryable()
join C in ChildObj.AsQueryable() on P.ParentID == C.ParentID
select new { // <-- look ma, i'm projecting!
ParentID = P.ParentID,
Name = P.Name,
SubName = C.Name
RandomDate = DateTime.UtcNow()
}