170 похожих чатов

Инджектить SqlConnection через DI - это плохая идея? А если

все-таки инджектить, то как потом использовать using? Или тогда не использовать using? И регистрировать SqlConnection в DI-контейнере, то как Singleton или не как Singleton?

8 ответов

4 просмотра

это подозрительная идея, да. Зачем там инжект, ты подменять будешь коннекшн? Если для тестов, то сомневаюсь что в классе, который активно юзает SqlConnection можно будет чот кроме интеграционных тестов написать над ин-мемори бд или подобным

Valeriy-Osipov Автор вопроса
Ayrat Hudaygulov
это подозрительная идея, да. Зачем там инжект, ты ...

Почему подозрительная? Не для тестов. Сейчас есть ConnectionFactory, где каждый раз делается new SqlConnection, который потом используется в using. Может быть выпилить ConnectionFactory и зарегистрировать SqlConnection'ы в DI-контейнере?

Valeriy Osipov
Почему подозрительная? Не для тестов. Сейчас есть ...

если не для тестов зачем ты инжектишь? ради инжекта?) interface IOrderStorage GetOrder: OrderId -> Async<Order> CreateOrder: OrderCreate -> Async<OrderId> type OrderPostgreStorage(postgreCredentials) = let connection = CreatePostgreConnection(postgreCredentials) interface IOrderStorage with member GetOrder orderId = conn.Execute … … псевдо фшарпокод Вот тут инжектится то что надо классу для работы, тестировать его проще простого - кинул креденшлы до постгре бд, потестил. Хоть в докере подымай сам, хоть в тестконтейнере, хоть в локалхосте Всем остальным интерфейс, пусть мокают если надо. Зачем инжектить просто так?

Valeriy-Osipov Автор вопроса
Ayrat Hudaygulov
если не для тестов зачем ты инжектишь? ради инжект...

нет, не ради инджекта, а для оптимизации - чтобы каждый раз не пересоздавать SqlConnection

Valeriy Osipov
нет, не ради инджекта, а для оптимизации - чтобы к...

в адо.нет уже встроен пулинг, не надо заниматься бесполезной оптимизацией...

Valeriy-Osipov Автор вопроса
Ayrat Hudaygulov
в адо.нет уже встроен пулинг, не надо заниматься б...

Да я и рад бы, но возникает такой Exception: The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. Утечки connection'ов я проверил вроде бы нет

Valeriy Osipov
Да я и рад бы, но возникает такой Exception: The t...

так вроде бы или нет?) Боюсь у тебя проблема

Valeriy-Osipov Автор вопроса
Ayrat Hudaygulov
так вроде бы или нет?) Боюсь у тебя проблема

Вроде бы - потому что я просто глазами код просмотрел. Везде connection'ы используются через using

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Добрый день, чат. Мне в очередь из других RabbitMQ по shovel валятся метрики в формате текста для Prometheus. Помогите пожалуйста подружить RabbitMQ и Prometheus, чтобы он (...
Aleksey
4
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Карта сайта