ASP.Net MVC 3 - создать экземпляр класса контекста данных в BaseController - PullRequest
0 голосов
/ 17 августа 2011

При добавлении контроллера в ASP.Net MVC 3 с использованием «Контроллера с действиями и представлениями« Чтение / Запись »с использованием EntityFramework» в качестве шаблона он создает класс следующим образом:

namespace Project.Controllers
{ 
    public class Default1Controller : Controller
    {
        private ProjectEntities db = new ProjectEntities();

        ...
    }
}

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

BaseController:

namespace MatchesHorsConcours.Controllers
{
    public class BaseController : Controller
    {
        protected MatchesEntities db = new MatchesEntities();
        ...
    }
}

Другие контроллеры:

namespace Project.Controllers
{ 
    public class Default1Controller : BaseController
    {
    ...
    }
}

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

Этот метод полезен, когда вам нужна логика на главной странице (например, для динамического рендеринга опций меню).Читайте об этом здесь: http://www.asp.net/mvc/tutorials/passing-data-to-view-master-pages-cs

Однако, в общем, это не очень хорошая техника.Я бы рекомендовал использовать внедрение зависимостей ( Ninject хорошо работает с MVC и прост в реализации)

1 голос
/ 17 августа 2011

Нет, абсолютно нет.Это делает абсолютно непроверенным.Пожалуйста, используйте шаблон репозитория и внедрение конструктора, если это возможно: Шаблон репозитория против DAL

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