EF4 Eager Загрузка из вложенных и общих таблиц - PullRequest
1 голос
/ 10 января 2012

В моей базе данных у меня есть Company.Компания имеет Branches, которые имеют Address.Компания также имеет Accounts, которые имеют ReturnAddresses, которые также имеют Address.

Я хочу загрузить все эти данные в одном запросе, что-то вроде:

from c in context.Company  
           .Include("Branches").Include("Address")
           .Include("Accounts").Include("ReturnAddresses").Include("Address")
where c.CompanyId.Equals(1)    
select c

Будут ли два метода .Include("Address") вычислять себя, чтобы получить правильные адреса для нужных аспектов?

Как еще можно загрузить все эти данные в одном запросе?

Ответы [ 2 ]

3 голосов
/ 10 января 2012

В EF 4.1 вы можете сделать это следующим образом

from c in context.Company  
  .Include(c => c.Branches.Select(b => b.Address))
  .Include(c => c.Accounts.Select(a => a.ReturnAddresses.Select(r => r.Address)))
where c.CompanyId.Equals(1)    
select c
1 голос
/ 10 января 2012

Используйте точечную нотацию, как в случае со свойством навигации, так:

Include("Entity.Property")
...