Надеюсь, на это уже не ответил, но я даже не знаю, что искать.Где хранить методы, относящиеся к модели
У меня есть проект MVC, и мне нужно вернуть список пользователей из БД. Достаточно просто. Но я хочу только вернуть некоторых пользователей. Опять же, простые вещи.
Что меня смущает, так это то, что я не знаю, куда я должен поместить код для этого. Если я поставлю его в контроллер, я получаю тот же код в нескольких методах и распределяюсь по нескольким контроллерам.
В настоящее время я помещаю метод для возврата пользователей в класс dbcontext. Это работает и, кажется, имеет смысл, но мне интересно, есть ли лучший способ сделать это? Этот класс в конечном итоге станет массовым в более крупном проекте.
Я рассмотрел использование классов репозитория, но это просто добавляет дополнительный слой. Я использую EF6 и не выполняю никакого модульного тестирования (пока)
Код ниже показывает структуру моего класса dbcontext (я отредактировал фактический код, чтобы он был кратким).
public class LeadsDB :DbContext
{
public LeadsDB()
: base("Leads")
{
}
public DbSet<User> Users { get; set; }
public IEnumerable<SelectListItem> GetUserList(bool includeBlank = true)
{
return UserList;
}
}
Репозиторий будет вашим следующим логическим шагом. Этот слой хорош.Стенды между бизнес-логикой и кодом доступа к базе данных. –
ИМО ваш класс 'LeadsDB' - это прекрасно, абсолютно не нужно добавлять еще одну абстракцию. – mxmissile
@mxmissile, вы не знаете, насколько большой будет его решение, поэтому, предполагая, что нет абсолютно никакого смысла в добавлении другого уровня абстракции, ограниченность. Нет никаких радикальных ответов ... в зависимости от того, что он делает и насколько велико его решение, и есть разные способы достижения того, чего он пытается достичь. –