Архитектура MVC - шаблоны - PullRequest
       21

Архитектура MVC - шаблоны

1 голос
/ 09 декабря 2011

Мне нужна помощь с архитектурой MVC.Я использую следующую архитектуру для объекта с именем User.

UserRepository -> IUserRepository -> UserService -> IUserService -> UserController

Объект User поступил из моей базы данных, и я использую EntityFramework.У меня есть функция, которая возвращает список пользователей Return_All_Users ().Одно из возвращаемых полей - «UserType».Это выглядит как число, но когда я показываю список на моей странице Index.aspx, я бы хотел, чтобы он отображался в виде строки.Номер для «UserType» должен заглянуть в словарь, чтобы найти строку, которая совпадает с номером, подобным «Administrator», и я хотел бы, чтобы эта строка отображалась на моей странице индекса.

Как бы я поступил так?В настоящее время я использую эту функцию:

  public IEnumerable<User> Return_All_Users()
{
  //my code here
}

У меня была другая публикация по аналогичному вопросу, и было предложено, чтобы мой IEnumerable возвращал строку, а не объект User.Я попробовал это, но потом я работаю с динамической моделью, и я не хотел этого делать.Также я не знаю, как работать с динамической моделью, поэтому я подумал, что, возможно, есть лучший способ сделать это.

Должно ли это произойти в моем UserService?Может быть, мне нужно создать новый класс с именем NewUser и определить UserType как строку, а затем создать экземпляр NewUser и передать значение от User.Перед передачей UserType я бы заглянул в словарь и получил бы правильное значение для ключа.

Должен ли я это сделать или есть лучший способ?


После того, как я отправил этот вопрос, я просто подумал сделать это с помощью хранимой процедуры.Может быть, использовать хранимую процедуру в моей базе данных, чтобы вернуть данные, в отличие от поиска моих данных прямо из моей таблицы базы данных.

1 Ответ

0 голосов
/ 09 декабря 2011

Я бы создал ViewView UserView, который был отформатирован для представления того, как ваше представление будет наилучшим образом использовать эти данные. Вы можете выполнить сопоставление от User до UserView в вашем репозитории или контроллере, в зависимости от того, где вы предпочитаете делать такое сопоставление.

...