В моем приложении я использую EF Core DbContext
в большинстве мест, где требуется доступ к данным. Также там, где требуется базовое соединение, я просто ввожу DbContext
и получаю соединение, используя DbContext.Database.GetDbConnection()
. В одной из библиотек классов (где ef core context не может быть введен) мне нужно внедрить IDbConnection, чтобы получить доступ к базе данных.
Я пытался
services.AddScoped<IDbConnection>(sp=>sp.GetRequiredService<MyContext>().Database.GetDbConnection())
, но выдает исключение stackoverflow.
В настоящее время я использую следующее -
services.AddScoped<IDbConnection>(sp=>new SqlConnection(connStringFromConfig))
, которое работает, но я ищу альтернативу, которая может извлечь выгоду из устойчивости соединения / ExecutionStrategy (когда используется EnableRetryOnFailures) который встроен в базовое соединение DbContext.
Есть ли способ достичь этого?