что было бы лучше сделать
public ActionResult Test()
{
User user = accountService.GetUser(User.Identity)
Product project = productService.GetSomething(user);
Store store = storeService.GetSomething(user);
}
Or
public ActionResult Test()
{
Product project = productService.GetSomething(User.Identity);
Store store = storeService.GetSomething(User.Identity);
}
В первом у меня есть сервисный слой, который принимает имя пользователя и вызывает репозиторий, чтобы получить запись пользователя обратно. Затем я передаю его и использую в других слоях обслуживания.
Теперь в варианте 2 я передаю имя пользователя, и на этом сервисном уровне я вызываю то же репо, что и accountService.
Разница лишь в том, что я передаю строку против объекта.
Вижу, у меня есть как положительные, так и отрицательные стороны. Если у вас есть только один метод, для которого нужны пользовательские данные, то отчасти нужно сослаться на другой слой службы, чтобы получить его и передать в другой.
Если у вас их несколько, он потенциально может сохранить некоторые запросы в базу данных (однако я в любом случае могу просто кэшировать его)