Вручную выберите данные связанной таблицы (ВЫБЕРИТЕ N + 1 проблема), LINQ к SQL

При хостинге non-WPF содержания (Быть этим HTML, WinForms или содержание Win32), Вы будете иметь Воздушное пространство проблемы. Это означает, что Вы не можете полностью удобрить компостом содержание WPF с размещенным содержанием. Вы также не можете анимировать его и т.д. существуют некоторые интересные проблемы относительно scrollviewers , посмотрите здесь для получения дополнительной информации и фиксации также.

5
задан Neil N 9 February 2010 в 20:53
поделиться

2 ответа

Вы можете использовать класс DataLoadOptions для загрузки связанных объектов с запросом.

DataLoadOptions dlo = new DataLoadOptions();

dlo.LoadWith<Image>(image => image.ImageTags);
dlo.LoadWith<ImageTag>(imageTag => imageTag.Tags);

context.DataLoadOptions = dlo;

Просто упомяну - это называется проблемой "SELECT N + 1 ".

ОБНОВЛЕНИЕ

Обычно я использую LINQ to Entities и не имею большого опыта работы с LINQ to SQL. Может также потребоваться явное отключение DeferredLoadingEnabled .

context.DeferredLoadingEnabled = false;
4
ответ дан 15 December 2019 в 01:07
поделиться

почему бы не попробовать что-нибудь вроде:

return
        from i in qry
        from iTags in i.ImageTags
        where tags.Contains(iTags.Tag)
        select new { TagName = i.Tag.name };

Это вернет коллекцию только с именами тегов. Надеюсь, я правильно понимаю ваш вопрос. Надеюсь, это поможет

0
ответ дан 15 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: