Ты можешь этот же код в любом классе написать
да, но как правильно это сделать с точки зрения ООП, я в ООП новичок, поэтому не хотелось бы допускать глупые ошибки
методы по работе с db в статик класс вынести можно
ужас )))
и будет ли разумно в этот класс подкинуть логирование (serilog) на случай ошибок при записи в бд ?
Во первых верни как было, про статик либо тебе дали плохой совет, либо ты его не так понял (хотя мне ничего другого в голову не приходит) Во вторых, зависит от того, какие ошибки ты ожидаешь
а что со статиком не так то?
Для чего он?
Что бы не создавать новый экземпляр
А чем это плохо?
это нетестируемый код если чо
Почитайте про паттерн репозиторий, судя по вашему кода — это то, что вам нужно. Вам не нужен тут никакой статический класс, вам нужен репозиторий, который вы будете пробрасывать в другие классы с помощью внедрения зависимостей. Да и сам БД вы в этот репозиторий должны пробрасывать через DI (внедрение зависимостей), потому что руками инициализировать контекст на каждый вызов метода — плохой флоу.
Если делаете API, то ещё одной хорошей практикой является использование токенов отмены, советую глянуть это видно, чтобы понять зачем: https://www.youtube.com/watch?v=lQu-eBIIh-w&t=679s
Так а в чём проблема работу с бд вынести в статику? Единственное, что я оценил код как раз таки с точки зрения разделения функционала, а не действий в нём выполняемых
А как его вынести в статику ?
Читабельность банально. +Актуально, если код повторяется в нескольких местах🤔
Какой код повторяется? dbContext.Models.Add(model) await dbContext.SaveChangesAsync()
Обсуждают сегодня