2010-12-09 1 views
2

Я потратил часы на часы, пытаясь понять, как сформировать данные, проецируемые из linq, в строго вид. Моя проблема в том, что я думаю, что моя проблема в том, что я не уверен, как использовать IEnumberable и IGrouping.строго типизированный вид проецируемого linq

Вот LINQ:

var spec = from a in _entities.Approvals 
        join b in _entities.ApprovalSpecifications on a.HeaderlID equals b.HeaderlID into g 
        where a.ApprovalID == id 
        group a by a.HeaderlID into groupedByHeader 
        select new 
        { 
         Key = groupedByHeader.Key, 
         groupedByHeader 
        }; 

Может кто-нибудь предложить метод, с которым я должен подойти к этому? Я думаю, что класс для этого будет работать лучше всего, но, как я уже говорил, я не уверен, как использовать IGrouping для создания класса. Любая помощь приветствуется!

+0

Ваш LINQ выглядит синтаксически ОК - так что вы пытаетесь достичь и что не работает? – Rikalous 2010-12-09 16:41:35

+0

Когда вы говорите «строго типизированный вид», вы говорите об этом: http://stackoverflow.com/questions/2823438/linq-groupby-in-strongly-typed-mvc-view? – diceguyd30 2010-12-09 19:54:02

ответ

1

Что-то вроде этого?

class StronglyTypedGrouping { 
    public object Key { get; set; } // I can't infer Key type from the snippet. 
    public IEnumerable<Approval> Approvals { get; set; } 
} 


var spec = from a in _entities.Approvals 
      join b in _entities.ApprovalSpecifications on 
      a.HeaderlID equals b.HeaderlID into g 
      where a.ApprovalID == id 
      group a by a.HeaderlID into groupedByHeader 
      select new StronglyTypedGrouping { 
       Key = groupedByHeader.Key, 
       Approvals = groupedByHeader 
      };