2012-06-01 2 views
11

Я рассматриваю некоторые примеры EF и пытаюсь решить, что такое «Query Projection» точно приравнивается к выполнению LINQ to Entities или EntitySQL. Я считаю, что когда результаты запроса фильтруются и проецируются в анонимный тип, но не на 100% уверены.Что означает проекция прогноза в Entity Framework?

Может кто-нибудь, пожалуйста, определите это и, возможно, предложите небольшой запрос L2E, который использует его пример?

Спасибо!

ответ

15

Проецирование - это когда результат запроса выводится на другой тип, чем тот, который запрашивается. Another article определяется как: процесса преобразования результатов запроса

проекция может быть анонимным типа, но может быть также к конкретному типу. Если вы пришли из мира 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() 
     } 
+0

Эта ссылка была действительно полезна, спасибо. – atconway

+0

Согласен, мне нравится, что ребята пишут. – EBarr

+0

@EBarr: Прогноз прогноза может улучшить индексирование на сервере sql? как? – Amir

Смежные вопросы