Size: a a a

var chat = new Chat();

2020 December 04

JS

John Stellmann in var chat = new Chat();
Может у него решарпер и Solution-Wide Analysis
источник

V

VD in var chat = new Chat();
Nikola S
О божечки! Снова эти стремные репозитории!
DbSet в DbContext это уже репозиторий!
Не делайте так, новички.
Хреновый это репозиторий
источник

V

VD in var chat = new Chat();
И множество причин почему
источник

NS

Nikola S in var chat = new Chat();
VD
Хреновый это репозиторий
Расскажи мне свою боль
источник

IP

Ihor Ponomarenko in var chat = new Chat();
John Stellmann
Может у него решарпер и Solution-Wide Analysis
кстати как вариант
источник

🅰O

🅰️ True Original 💬... in var chat = new Chat();
Nikola S
О божечки! Снова эти стремные репозитории!
DbSet в DbContext это уже репозиторий!
Не делайте так, новички.
а как делать?
источник

AO

Andrey Onatsky in var chat = new Chat();
🅰️ True Original 💬
а как делать?
Просто используй dbcontext напрямую.
источник

NS

Nikola S in var chat = new Chat();
🅰️ True Original 💬
а как делать?
Дело не в использовании самого патерна репозитрия, а в том, что люди пишут еще один DbSet а потом мучаются. Репозиторий должен функции какие-то выполнять, возвращать DTO или делать доп. фильтрации и прочее. Если надобности в таком нет, то инжектишь dbcontext сразу в сервис и в контроллере используешь его.
источник

IP

Ihor Ponomarenko in var chat = new Chat();
а потом приходит кто то другой и начинает сношать что код без задумки о перспективне на будущее)
источник

JS

John Stellmann in var chat = new Chat();
Nikola S
Дело не в использовании самого патерна репозитрия, а в том, что люди пишут еще один DbSet а потом мучаются. Репозиторий должен функции какие-то выполнять, возвращать DTO или делать доп. фильтрации и прочее. Если надобности в таком нет, то инжектишь dbcontext сразу в сервис и в контроллере используешь его.
Почему тогда не инжектить контекст прямо в контоллер? )) Зачем прослойка в виде сервиса? ))
источник

NS

Nikola S in var chat = new Chat();
John Stellmann
Почему тогда не инжектить контекст прямо в контоллер? )) Зачем прослойка в виде сервиса? ))
))
источник

JS

John Stellmann in var chat = new Chat();
Ihor Ponomarenko
а потом приходит кто то другой и начинает сношать что код без задумки о перспективне на будущее)
А ты его отправляешь читать yagni principle
источник

NZ

Nikolay Zainchkovski... in var chat = new Chat();
John Stellmann
Почему тогда не инжектить контекст прямо в контоллер? )) Зачем прослойка в виде сервиса? ))
Тестировать тогда сложно. Сервис можно протестировать без обращения к rest api. А чтобы контроллер протестировать, нужно реально к нему обращаться. Плюс, сервис может содержать в себе дополнительную логику, кроме непосредственно работы с базой данных.
источник

JS

John Stellmann in var chat = new Chat();
Nikolay Zainchkovskiy
Тестировать тогда сложно. Сервис можно протестировать без обращения к rest api. А чтобы контроллер протестировать, нужно реально к нему обращаться. Плюс, сервис может содержать в себе дополнительную логику, кроме непосредственно работы с базой данных.
Ну так интегрейшн тестами вызывай его
источник

NZ

Nikolay Zainchkovski... in var chat = new Chat();
John Stellmann
Ну так интегрейшн тестами вызывай его
А что делать с юнит тестами? Так можно сказать, что вообще e2e - наше всё, и остальные тесты не нужны.
источник

IP

Ihor Ponomarenko in var chat = new Chat();
John Stellmann
А ты его отправляешь читать yagni principle
а он тебе начинает рассказывать о перспективе перехода на другую субд) и в добавок начинает рассказывать что принцып репозитаория нарушен потому что у тебя там есть еще какието доп функцыи в виде спецыфической выборки)
источник

JS

John Stellmann in var chat = new Chat();
Ihor Ponomarenko
а он тебе начинает рассказывать о перспективе перехода на другую субд) и в добавок начинает рассказывать что принцып репозитаория нарушен потому что у тебя там есть еще какието доп функцыи в виде спецыфической выборки)
О да, мне тоже иногда начинают рассказывать про датабейс агностик код, но дело в том что рано или поздно ты останешься прибитым гвоздями к своей базе, и тебе все равно приходится писать какой нибудь постгресс специфик код, чтоб ускорить выборку, потому что еф не может асилить что-то там
источник

IP

Ihor Ponomarenko in var chat = new Chat();
ага
источник

IP

Ihor Ponomarenko in var chat = new Chat();
тут просто часто выходит патерн ради патерна
источник

JS

John Stellmann in var chat = new Chat();
Ну или интерфейсами обмажутся имея всего одну имплементацию
источник