Загрузка дерева объектов Entitiy Framework - PullRequest
1 голос
/ 19 января 2010

Как загрузить следующие объекты EF:

alt text

источник изображения: http://blogs.microsoft.co.il/blogs/idof/archive/2008/08/20/entity-framework-and-lazy-loading.aspx

Допустим, у нас есть идентификатор адреса, и мы хотим загрузить адрес с человеком и домашними животными. Как это сделать?

Мы можем сделать это

var address = contex.Addresses.Include("Peson").Where(add => add.Id == GivenId);

Но он загружает адрес и человека без домашних животных.

Если я включаю сущность домашних животных, как это:

var address = contex.Addresses.Include("Peson").Include("Pets").Where(add => add.Id == GivenId);

Я получаю ошибку:

Указанный путь включения недействителен.

Итак, вопрос в том, как загрузить целое дерево сущностей.

Ответы [ 2 ]

5 голосов
/ 19 января 2010

Вы можете загрузить дерево, разделив отношения с помощью "."

context.Address.Include("Person.Pets"); //Include all the persons with their pets
context.Pets.Include("Person.Address"); //Include all the persons with their addresses
2 голосов
/ 19 января 2010

Всегда выбирать из объекта верхнего уровня вниз, что-то вроде:

var person = from p in context.Person.Include("Pets").Include("Address")
where p.Address.Id == givenId
select p;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...