Контекст базы данных, используемый в контроллерах в MVC проектах - PullRequest
0 голосов
/ 20 апреля 2020

Specifi c вопрос - как я могу сбросить DbContext, созданный в Startup в ASP. Net CORE, в приложение Data Access Layer без прохождения через контроллер первым?

В настоящее время шаблон выглядит так:

request starts ---> dbcontext created ---> dbcontext passed to controller ---> pass to DAL --> return items

Но я действительно просто хочу

request starts ---> controller instanced ---> controller calls dal ---> dbcontext created -- return items

Проблема, с которой я столкнулся, заключается в получении конфигурации из appsettings в dal.


Справочная информация:

В старых проектах Framework у меня есть уровень доступа к данным, который я создаю и располагаю с помощью однострочного оператора в контроллере, как правило, так:

List<stuff> MyListOfStuff = new DAL().GetStuff();
Return View(MyListOfStuff)

Обычно сопоставляя эти списки / объекты с ViewModels в одной строке, используя цепной синтаксис или любые другие необходимые методы сопоставления.

Контекст создается во время создания DAL () и получает его параметры из global.asax или web.config

Я почти уверен, что у меня появилась эта привычка, потому что (я думаю) я во многих местах читал бизнес-логи c и логи доступа к данным c не должен go в контроллерах. Контроллеры должны быть минимально возможными?

Я сейчас изучаю asp. net ядро, контекст которого настраивается при запуске и создается вне поля зрения и по умолчанию передается контроллеру и MSDN. Учебное пособие показывает, что мы должны просто использовать этот контекст прямо в контроллере, вообще не используя его или не передавая его на другой уровень.

Являются ли учебные пособия просто показом нам быстрого, минимального способа сделать что-то, чтобы начать или это на самом деле лучшая практика? Я предпочитаю создавать контексты только в DAL и пока не вижу в этом никакой выгоды, и не могу понять, как перенести мои appsettings.json сконфигурированные DbContexts в любой старый класс DAL.

https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro?view=aspnetcore-3.1

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