EntityRefs и EntitySets - Когда они получены? - PullRequest
0 голосов
/ 22 декабря 2009

Предположим, у меня есть сущность с именем "A", которая содержит EntityRef и EntitySet. Мне интересно, когда именно, по умолчанию EntityRef и EntitySet извлекаются, когда "A" извлекается из базы данных? Из моих экспериментов кажется, что EntityRef извлекается в то же время, когда сущность "A" извлекается из базы данных, а EntitySet извлекается, когда я начинаю перебирать сущности EntitySet. Это правильно?

Спасибо - Рэнди

1 Ответ

1 голос
/ 30 декабря 2009

Да, вы правы по умолчанию. Вы также можете настроить поведение несколькими способами: в модели (в зависимости от провайдера) вы можете установить свойства отложенной загрузки для выборки во время выборки основного объекта или для ожидания запроса конкретного свойства (по умолчанию) .

Кроме того, вы можете загрузить один EntitySet для каждого родителя на запрос в запросе с DataLoadOptions, например:

public class Parent
{
  public string Name { get; set; }
  public EntitySet<Child> Children { get; set; }
}
public class Child
{
  public string Name { get; set; }
  public int Age { get; set; }
}

var dlo = new DataLoadOptions();
dlo.LoadWith<Parent>(p => p.Children);
var dc = new DataContext();
dc.LoadOptions = dlo;

var parentAndChildren = from p in dc.Parents select p;

Выше было бы выполнено левое соединение для извлечения потомков в одном запросе. Вы можете найти больше примеров в DataLoadOptions MSDN Docs . Существует также аналогичный AssociateWith для ограниченной загрузки, который вы можете проверить .

Кроме того, если вам нужно загрузить EntitySet ранее, вы можете вызвать .Load () для него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...