EF вытаскивает ссылочные первичные ключи в отношении 1-M - PullRequest
0 голосов
/ 03 марта 2010

В отношении 1-M во многих отношениях я могу извлечь идентификатор родительского элемента, не выполняя другой запрос, используя что-то вроде следующего:

this.ParentReference.EntityKey.EntityKeyValues[0].Value

Но что мне интересно, если есть аналогичный способ извлечения множества идентификаторов из 1 без выполнения другого запроса?

Приветствие Энтони

1 Ответ

1 голос
/ 03 марта 2010

Нет, если только вы не загружаете (или не проектируете) отношения.

Когда вы загружаете this, сам EF загружает все данные из таблицы , котораясодержит this.Это не JOIN в других таблицах.

Когда вы загружаете Parent, данные, содержащие дочерние идентификаторы, находятся в другой таблице БД.Поэтому, если вы не скажете EF загрузить его, он не будет JOIN в этой другой таблице.

Так что, если вы знаете, что вам понадобятся идентификаторы "child" при загрузке Parent, вы можете стремитьсянагрузка:

var p = Context.Parents.Include("Children").Where(p => p.Id == id).First();

... или проект:

var q = from p in Context.Parents
        where p.Id == id
        select new
        {
            Parent = p,
            ChildIds = from c in p.Children
                       select c.Id
        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...