|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть концептуальный вопрос связанный с не до конца понятным механизмом работы с контекстом базы данных в приложении ASP.NET Core. В частности в API. Есть понимание, что контекст нужно регистрировать в Startup->ConfigureServices через services.AddDbContext Далее его можно использовать в контроллере. Но вот нет понимания того как же он работает. Это один экземпляр контекста базы данных? Или при каждом вызове API создается новый? Если один, то возможны конфликты. Если при каждом вызове создается новый, то сколько же их может создаваться? Кроме этого я бизнес логику вынес в классы репозитарии. Как в них правильно передавать контекст или же использовать контекст базы данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 11:34 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
На каждый вызов свой контекст. Создается столько, столько запросов. Конфликты решаются EF в ASP так же, как и в любой другой многопользовательской среде Ничего не надо передавать, используйте встроенное внедрение зависимостей ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 11:47 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
Homosum, ну что мещает тебе глянуть сорсы? все сразу понятно https://github.com/aspnet/EntityFrameworkCore/blob/9186d0b78a3176587eeb0f557c331f635760fe92/src/Microsoft.EntityFrameworkCore/EntityFrameworkServiceCollectionExtensions.cs#L140 если ты используешь уже DI для регистрации контекста, так инжектируй в репозитории его ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 11:48 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
Насчет посмотреть исходниках - благодарю за наводку. Может быть подскажете как правильно регистрировать контекст базы данных в репозитарии? handmadeFromRuHomosum, ну что мещает тебе глянуть сорсы? все сразу понятно https://github.com/aspnet/EntityFrameworkCore/blob/9186d0b78a3176587eeb0f557c331f635760fe92/src/Microsoft.EntityFrameworkCore/EntityFrameworkServiceCollectionExtensions.cs#L140 если ты используешь уже DI для регистрации контекста, так инжектируй в репозитории его ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:03 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
HomosumКроме этого я бизнес логику вынес в классы репозитарии.зачем? Лишнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:15 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
HomosumМожет быть подскажете как правильно регистрировать контекст базы данных в репозитарии? https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:16 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
Homosum, EF Core инжекция из коробки. Получаем контекст в контроллере. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:30 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
Petro123Получаем контекст в контроллере.не нужен контекст в контроллере. В контроллере получаем сервис (ну или репозитарий, как у ТС), а его зависимости (от контекста в частности) - это проблема инжектора ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:33 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
HomosumЕсли один, то возможны конфликты.один на запрос. Проверяй. В конце запроса скидывай в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:34 |
|
Контекст базы данных. Как правильно использовать
|
|||
---|---|---|---|
#18+
Shocker.ProPetro123Получаем контекст в контроллере.не нужен контекст в контроллере. В контроллере получаем сервис (ну или репозитарий, как у ТС), а его зависимости (от контекста в частности) - это проблема инжекторатогда лучше слово сервис а не репо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:35 |
|
|
start [/forum/topic.php?fid=18&fpage=18&tid=1355114]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 262ms |
total: | 412ms |
0 / 0 |