это правильная архитектура приложения ASP.NET MVC & EF? - PullRequest
1 голос
/ 09 октября 2011

У меня есть следующий класс хранилища:

public class Model1Repository
{
    private NEOGOV_IdeasEntities _dataContext;
    public Model1Repository()
    {
        _dataContext = new NEOGOV_IdeasEntities();
    }
    public IdeaType IdeaType(int ID)
    {
        var q = from i in _dataContext.IdeaTypes where i.ID == ID select i;
        return q.FirstOrDefault();
    }
    ... rest methods....
}

следующий контроллер:

public class TestController : Controller
{
    private Model1Repository _repository;

    public TestController()
    {
        _repository = new Model1Repository();
    }
    public ActionResult Tagedit()
    {
        return View(_repository.GetDataFromDB1());
    }

    public ActionResult Avatar()
    {
        return View(_repository.GetDataFromDB2());
    }
}

это правильная архитектура? Или нет? Как я понимаю, в моем случае переменная _repository создает для каждого запроса ...

Ответы [ 2 ]

1 голос
/ 09 октября 2011

Лично я бы создал хранилище в действии контроллера, а не конструктор. Если вы уверены, что для всех действий контроллера потребуется хранилище, то это достаточно справедливо, но поскольку операции на контроллере связаны с работой пользовательского интерфейса, нет ничего необычного в том, чтобы иметь методы контроллера, которые этого не требуют. 1001 *

Но это действительно стильная вещь в конце дня (хорошо, возможно, с небольшим снижением производительности); если вы хотите сделать это таким образом, не стесняйтесь!

0 голосов
/ 09 октября 2011

Невозможно ответить для всей архитектуры, но будет один и только один репозиторий Model1Repository объект, созданный для TestController, а не один на запрос (HTTP-запрос).

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