ASP.NET MVC: обновление модели изнутри модели? - PullRequest
0 голосов
/ 25 февраля 2011

В контроллере я делаю следующее:

DBContext DB = new DBContext();
var u = DB.Users.Find(1);
u.firstname = "blah";
UpdateModel(u);
DB.SaveChanges();

Я хочу сделать то же самое из модели ...

namespace Project.Models
{
  public class User
  {
    public void resetPassword()
    {
      // Generate new password, etc.
      this.password = "blah";
    }
  }
}

Любая идея, как мне поступитьэтот?Кажется, UpdateModel() доступен только из контроллеров.

Я использую EntityFramework Code-First CTP5.

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Я думаю, что UpTheCreek верен, но, вероятно, ему нужно какое-то объяснение, поэтому я постараюсь расширить его / ее ответ. Первым шагом будет использование шаблона репозитория . Вы можете найти множество примеров этого паттерна в MVC с помощью поиска Google - это - особенно щадящее введение (примерно 3/4 вниз по странице).

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

0 голосов
/ 25 февраля 2011

Вводить проблемы доступа к данным в вашу модель не очень хорошая идея.

Обновление: да, для этого обычно требуется слой доступа к данным.Как говорит Энди, в настоящее время модным способом сделать это является использование репозитория.Как правило, в вашей модели не требуется ничего, что не является основной бизнес-логикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...