У нас есть сайт ASP.NET MVC, который использует абстракции Entity Framework с шаблонами Repository и UnitOfWork. Мне интересно, как другие реализовали навигацию по сложным графам объектов с помощью этих шаблонов. Позвольте мне привести пример одного из наших контроллеров:
var model = new EligibilityViewModel
{
Country = person.Pathway.Country.Name,
Pathway = person.Pathway.Name,
Answers = person.Answers.ToList(),
ScoreResult = new ScoreResult(person.Score.Value),
DpaText = person.Pathway.Country.Legal.DPA.Description,
DpaQuestions = person.Pathway.Country.Legal.DPA.Questions,
Terms = person.Pathway.Country.Legal.Terms,
HowHearAboutUsOptions = person.Pathway.Referrers
};
Это процесс регистрации, и почти все зависит от класса Person POCO. В этом случае мы кэшируем человека в процессе регистрации. Я' Сейчас мы приступили к реализации последней части процесса регистрации, которая требует доступа к данным глубже в графе объекта. В частности, данные DPA, которые зависают от Legal внутри страны.
Приведенный выше код просто отображает информацию о модели в более простой формат для ViewModel. Мой вопрос: считаете ли вы эту довольно глубокую навигацию по графу хорошей практикой или вы бы абстрагировали извлечение объектов дальше по графику в репозитории?