Долгое время скрывался, впервые отправляю сообщения и заново изучаю EF4 и MVC3.
Мне нужна помощь, чтобы убедиться, что я использую правильную стратегию загрузки данных в этом случае, а также некоторую помощь в завершении некоторых деталейзапрос.В настоящее время я использую готовый подход к загрузке, изложенный здесь для некоторого представления «панели мониторинга», для которого требуется небольшой объем данных из примерно 10 таблиц (все имеют отношения FK).
var query = from l in db.Leagues
.Include("Sport")
.Include("LeagueContacts")
.Include("LeagueContacts.User")
.Include("LeagueContacts.User.UserContactDatas")
.Include("LeagueEvents")
.Include("LeagueEvents.Event")
.Include("Seasons")
.Include("Seasons.Divisions")
.Include("Seasons.Divisions.Teams")
.Where(l => l.URLPart.Equals(leagueName))
select (l);
model = (Models.League) query.First();
Однако мне нужно выполнить дополнительную фильтрацию, сортировку и формирование данных, которые я не смог обработать.Вот мои главные потребности / проблемы с этой точки зрения:
Некоторые дочерние объекты все еще нуждаются в дополнительной фильтрации, но я пока не смог выяснить синтаксис или лучший подход.Пример: «TOP 3 LeagueEvents.Event WHERE StartDate> = getdate () ORDER BY LeagueEvents.Event.StartDate»
Мне нужно отсортировать некоторые поля.Примеры: ORDERBY Seasons.StartDate, LeagueEvents.Event.StartDate, LeagueContacts.User.SortOrder и т. Д.
Я уже очень обеспокоен общим размером SQL, генерируемого этимзапрос и количество объединений, и я думаю, что мне может понадобиться совсем другой подход к загрузке данных. (Явная загрузка? Несколько объектов QueryObject? POCO?)
Любой ввод, направление или совет покак решить эти остающиеся потребности, а также обеспечить высокую производительность.