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

Кстати в гет методах в репозитории лучше AsNoTracking делать по

умолчанию?
Я так же могу использовать get запрос помимо ридонли чтобы получить сущность и потом изменить тогда трекинг необходим или можно обойтись без него?

29 ответов

16 просмотров
Vlad- Автор вопроса

всё под cqrs пашет

Автор EfCoreInAction советуют любой запрос который выгружает только данные(рид онли запросы) помечать как NoTracking(). А как ты с репой это сделаешь? Если к примеру при переиспользовании метода репы в одном случае тебе нужны данные для изменения, т.е трекер нужен, а в другом не нужен?

Vazovsk1y
Автор EfCoreInAction советуют любой запрос который...

Репы нужно правильные делать, они не для переиспользования, а дженерик репы, это мягко говоря вообще не репы, название одно.

Дмитрий Алексеев
Репы нужно правильные делать, они не для переиспол...

А как в таком случае с AsNoTracking()? Если у репы есть метод GetAll(), к примеру. И в одном случае вы достаете из репы сущности редактирования, а в другом для маппинга их в дто?

Vazovsk1y
А как в таком случае с AsNoTracking()? Если у репы...

Не может быть у правильной репы такого метода )

Vlad- Автор вопроса
Vazovsk1y
Автор EfCoreInAction советуют любой запрос который...

Делать условные GetProductById и GetProductByIdReadOnly дикость?

Дмитрий Алексеев
Ух я)

*у меня ебало отвалилось* А как вы допустим вытаскиваете все сущности из бд, если стоит такая цель, если в репе этого метода нет?

Vlad
Делать условные GetProductById и GetProductByIdRea...

Опытные ребята подскажут точнее, но как мне кажется, так методов в репе расплодится много и уже легче просто дбконтекст напрямую заинжектить в сервис/хендлер. Так и гибкости больше в плане запросов и кода вроде как меньше)

Vlad- Автор вопроса
Дмитрий Алексеев
Не может быть у правильной репы такого метода )

Может если гет алл фильтруется по юзер айди и с пагинацией

Vazovsk1y
*у меня ебало отвалилось* А как вы допустим вытаск...

Ну так возьмите ef для таких целей. репозиторий призван сделать код понятнее, и перевести термины БД в термины БЛ, Что значит с точки зрения БЛ, метод GetAll? Что там будет? Какие связанные таблицы вместе прилетят? Какая моделька будет на выходе? Осмысленно должно называться.

Да, я тоже постепенно прихожу к тому, что репы юзлесс в свящке с еф. И как я понял, в клоните к тому, что репы нужны, если другой способ доступа к данным. А есть хотя бы малый пример метода правильной репы? Спасибо за ответ!

Vazovsk1y
Да, я тоже постепенно прихожу к тому, что репы юзл...

Не всегда, если работам со сложной БЛ и ДДД, без них никак. Если нет, то им откровенно мало применений толковых, кроме потешить себя мыслей что мы спрятали контекст за ними ))

Vazovsk1y
Да, я тоже постепенно прихожу к тому, что репы юзл...

Только осторожнее, есть адепты слоенки, они за такие высказывания побъют )

Vazovsk1y
Да, я тоже постепенно прихожу к тому, что репы юзл...

Я процедуры пишу в БД и вызываю на бекенде

bookuxa
Я процедуры пишу в БД и вызываю на бекенде

Объясни пожалуйста, очень хотелось бы понять, что ты имеешь ввиду.

Vazovsk1y
Да, я тоже постепенно прихожу к тому, что репы юзл...

Ну например из ДДД, пример правильной репы: У нас есть сучность заказа, в ней имеются метод например добавить товар, и отправить в производство, делаем репу, ОрдерРепа, в которой два метода получить сучность заказа, и сохранить сучность заказа. все остальное делается методами в самом заказе. а репозиторий собирает из всех таблиц модель БЛ заказа, и при записи он же ее обратно распихивает.

А что мешает вытащить все тоже самое через контекст? Достань фулловый агрегат, выполняй на нем нужные бл операции и сохраняй через контекст?

Дмитрий Алексеев
Ну например из ДДД, пример правильной репы: У нас ...

Ну и все равно, вот вам нужно отдать список всех ордеров, разве не логично что в репе должен быть такой метод?

Vazovsk1y
А что мешает вытащить все тоже самое через контекс...

Ничего не мешает, но фокус в том что в этом случае структура таблиц просочится в уровень БЛ, например для проверки возможности запуска заказа нужно знать оплачен он или нет, в БД, у вас это куча таблиц где оплата бегает, а вам в модели нужно только булево поле.

Vazovsk1y
Ну и все равно, вот вам нужно отдать список всех о...

Нет таково в ДДД, там не нужна куча ордеров, это нужно для вывода на экран, например в апишке отдать, и там вам никто не мешает прям в контроллере прям из контекста все собрать и выплянуть презент модель. Мало того Скотт Миллет в своей книге описыват такую схему, и отдельно упоминает что не надо при построении отчетов пользоваться агрегатами ДДД, это будет капец треш и угар, делайте отдельно.

Vazovsk1y
Понял, спасибо за мысли, интересно.

Это все в книгах пишуть, не мои идеи )) но мне они нравятся, не все конечно ))

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта