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

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

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

29 ответов

15 просмотров
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
Понял, спасибо за мысли, интересно.

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта