2014-09-29 3 views
0

У меня есть Oracle db с EF 5 поверх него.EF Linq - как выбрать детей в одном запросе?

Допустим, у меня есть столовая компания и заказы. У меня есть компании, соответствующие EF, где у Компании есть поле

List<Orders> Orders.

Я не хочу создавать ассоциации.

У меня есть запрос, который IQuerable и мне нужно заполнить заказы для каждой компании с использованием

order.CompanyId == company.Id

Я не могу обернуть мою голову вокруг этого атм .. Любая помощь будет оценена.

EDIT: У каждой компании нет заказов. Список заказов может быть пустым.

ответ

0

Я хотел бы использовать метод .Join() для включения таблицы заказов. Я пишу это из памяти, поэтому, пожалуйста, прощайте синтаксические ошибки.

//I only use this bc I don't know the full schema. 
class DTOCompany { 
    public int ID {get;set;} 
    public List<Orders> Orders {get;set;} 
} 

public List<Companies> GetCompaniesOrders() { 

    using (var db = new Entities()) { 
    return db.Companies 
     .AsEnumerable() //may not be needed. 
     .Join(db.Orders, 
     c => CompanyId, 
     o => o.CompanyId, 
     (c,o) => new { Company = c, Orders = o}) 
    ) 
     .Select(co => new DTOCompany() { 
     ID = co.Companies.CompanyId, 
     Orders = co.Orders.ToList() 
     }) 
     .ToList(); 
    } 
} 
+0

Извините, я не сделал это более понятным, но не у каждой компании есть заказы. список ордеров может быть пустым –

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