Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Контекст базы данных. Как правильно использовать / 10 сообщений из 10, страница 1 из 1
17.10.2018, 11:34
    #39718633
Homosum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
Здравствуйте!
Есть концептуальный вопрос связанный с не до конца понятным механизмом работы с контекстом базы данных в приложении ASP.NET Core.
В частности в API.

Есть понимание, что контекст нужно регистрировать в Startup->ConfigureServices через services.AddDbContext
Далее его можно использовать в контроллере.

Но вот нет понимания того как же он работает. Это один экземпляр контекста базы данных? Или при каждом вызове API создается новый? Если один, то возможны конфликты. Если при каждом вызове создается новый, то сколько же их может создаваться?

Кроме этого я бизнес логику вынес в классы репозитарии. Как в них правильно передавать контекст или же использовать контекст базы данных?
...
Рейтинг: 0 / 0
17.10.2018, 11:47
    #39718644
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
На каждый вызов свой контекст. Создается столько, столько запросов.

Конфликты решаются EF в ASP так же, как и в любой другой многопользовательской среде

Ничего не надо передавать, используйте встроенное внедрение зависимостей
...
Рейтинг: 0 / 0
17.10.2018, 11:48
    #39718645
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
Homosum,

ну что мещает тебе глянуть сорсы? все сразу понятно
https://github.com/aspnet/EntityFrameworkCore/blob/9186d0b78a3176587eeb0f557c331f635760fe92/src/Microsoft.EntityFrameworkCore/EntityFrameworkServiceCollectionExtensions.cs#L140

если ты используешь уже DI для регистрации контекста, так инжектируй в репозитории его
...
Рейтинг: 0 / 0
17.10.2018, 12:03
    #39718669
Homosum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
Насчет посмотреть исходниках - благодарю за наводку.
Может быть подскажете как правильно регистрировать контекст базы данных в репозитарии?

handmadeFromRuHomosum,

ну что мещает тебе глянуть сорсы? все сразу понятно
https://github.com/aspnet/EntityFrameworkCore/blob/9186d0b78a3176587eeb0f557c331f635760fe92/src/Microsoft.EntityFrameworkCore/EntityFrameworkServiceCollectionExtensions.cs#L140

если ты используешь уже DI для регистрации контекста, так инжектируй в репозитории его
...
Рейтинг: 0 / 0
17.10.2018, 12:15
    #39718688
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
HomosumКроме этого я бизнес логику вынес в классы репозитарии.зачем?
Лишнее?
...
Рейтинг: 0 / 0
17.10.2018, 12:16
    #39718689
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
HomosumМожет быть подскажете как правильно регистрировать контекст базы данных в репозитарии? https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.0
...
Рейтинг: 0 / 0
17.10.2018, 12:30
    #39718701
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
Homosum,
EF Core инжекция из коробки.
Получаем контекст в контроллере.
Всё.
...
Рейтинг: 0 / 0
17.10.2018, 12:33
    #39718706
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
Petro123Получаем контекст в контроллере.не нужен контекст в контроллере. В контроллере получаем сервис (ну или репозитарий, как у ТС), а его зависимости (от контекста в частности) - это проблема инжектора
...
Рейтинг: 0 / 0
17.10.2018, 12:34
    #39718707
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
HomosumЕсли один, то возможны конфликты.один на запрос.
Проверяй.
В конце запроса скидывай в базу.
...
Рейтинг: 0 / 0
17.10.2018, 12:35
    #39718709
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекст базы данных. Как правильно использовать
Shocker.ProPetro123Получаем контекст в контроллере.не нужен контекст в контроллере. В контроллере получаем сервис (ну или репозитарий, как у ТС), а его зависимости (от контекста в частности) - это проблема инжекторатогда лучше слово сервис а не репо.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Контекст базы данных. Как правильно использовать / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]