Могу ли я определить интенсивную загрузку по текстовому тексту вместо этого по запросу? - PullRequest
3 голосов
/ 26 мая 2011

Есть ли способ определить энергичную загрузку для всего контекста данных, поэтому я мог бы заявить что-то вроде этого - «при использовании этого контекста данных при загрузке клиент всегда загружает также связанный город»?

Итак, что-то очень похожее на Options и LoadWith в Linq to Sql.

Ответы [ 3 ]

3 голосов
/ 26 мая 2011

Ни одна структура Entity не предлагает эквивалент DataLoadOptions, доступный в Linq-to-Sql. Не существует способа определить что-то вроде LoadWith или AssociateWith глобально.

1 голос
/ 26 мая 2011

Как сказал Ладислав, в настоящее время нет возможности сделать это в EF. Однако возникает вопрос, почему вы хотите сделать это глобально, а не для каждого запроса.

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

Тем не менее, я не знаю, решит ли это основную проблему того, что вы пытаетесь сделать, или нет, без более подробной информации о том, почему вы хотите этого глобально

0 голосов
/ 15 сентября 2012

Вы можете определить параметры загрузки данных в конструкторе вашего DataContext:

public MyDataContext() : 
  base(global::System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString, mappingSource)
{
    DataLoadOptions options = new DataLoadOptions();
    options.LoadWith<Customer>(o => o.City);
    this.LoadOptions = options;
    OnCreated();
}

Это будет загружать атрибут каждый раз.

...