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

Блин, господа, вы серьёзно обсуждаете стоит ли возвращать сущность БД

из контроллера?

22 ответов

24 просмотра

Ты начал это 😁

Oleg-Safonov Автор вопроса
Дим 27
Ты начал это 😁

Вы аргументируете, что это норм. Очевидно пришёл новичок, которому нужно сказать, что это не норм и он не просто так напоролся на проблемы сейчас

Oleg Safonov
Вы аргументируете, что это норм. Очевидно пришёл н...

Опять же - проблема связана с сериализацией данных, а не в упаковке в другую структуру

Oleg-Safonov Автор вопроса
Дим 27
Опять же - проблема связана с сериализацией данных...

нет, блин, он возвращает не зная что он возвращает, в этом проблема

Oleg Safonov
нет, блин, он возвращает не зная что он возвращает...

Хорошо, представь, что тебе нужно вернуть объекты Подразделения Внутри есть ссылка на родительское подразделение Также навигационное свойство с коллекцией дочерних подразделений и навигационное свойство на подразделение человека, который сосудам текущее подразделение Id, ParentId, CreateDivisionId, Children Попробуй просто взять и смапить это в дто в древовидном и вернуть результат через апи И поймешь что дело не в дто

Oleg-Safonov Автор вопроса
Дим 27
Хорошо, представь, что тебе нужно вернуть объекты ...

На этапе создания ДТО я пойму что делаю херню

Oleg Safonov
На этапе создания ДТО я пойму что делаю херню

Ну задача стоит вывести древовидный список)

Oleg-Safonov Автор вопроса
Дим 27
Ну задача стоит вывести древовидный список)

выводите. Никаких циклических связей это не требует

Дим 27
Хорошо, представь, что тебе нужно вернуть объекты ...

вроде бы ребята предлагают брать сущность из EFCore"ки с инклюдами и прочим, размапливать в детерминированную DTOшку и возвращать её

Oleg-Safonov Автор вопроса

при чём тут ef вообще?

Кстати, еще в копилку, если тебе потом в контроллере все равно надо будет мапить это дело, чтобы возвращать, то почему бы и сразу не делать это?

Phantom
Кстати, еще в копилку, если тебе потом в контролле...

у нас просто сложилась практика возвращать те же модели, что лежат в БД, наружу. Мы толком не размапливаем, если это не какая-то необходимость

Alexander
вроде бы ребята предлагают брать сущность из EFCor...

Ничего не предлагали такого. За инклюды надо бить по пальцам обычно. Или по голове.

почему за инклюды надо бить по голове? Если мы говорим про работу с EFCore и заполнение ICollection в модели по заполненным ключам в модель билдере?

Alexander
почему за инклюды надо бить по голове? Если мы гов...

Потому что использующий код не знает что было заинклужено. Еще хуже когда это возвращается из апихи и не покрыто тестами и вы узнаете о проблеме только когда клиент отвалится (а отвалится только когда захочет получить имено это поле)

Alexey Brovko
Потому что использующий код не знает что было заин...

И какая альтернатива? При работе с EFCore я использую инклюды, когда мне нужно заполнить, например, модель Menu данными из связанных один-ко-многим ICollection<MenuItem> MenuItems. Используя LINQ я задаю SQL через LINQ-to-Entities в процессе формирования IQueryable запроса в БД. Указанные мной в модель билдере ключи и отношения позволяют ORM сделать за меня оптимальную работу по поиску связанных объектов и вернуть мне коллекцию. Я понимаю, что можно пойти альтернативным путём, и сходу приходит вариант с отдельной выборкой MenuItems.Where(x => x.IdMenu == idMenu), и затем вкладывать в DTO эти MenuItems в отдельную менюшку. Но когда речь заходит о формировании контракта с отношениями многие-ко-многим, этот вариант не сработает. Как тут поступить? Если ManyToMany, которое обеспечивает нам EFCore, ты считаешь плохим?

Alexander
И какая альтернатива? При работе с EFCore я исполь...

dbContext.Where(condition).Select(selector).ToArrayAsync() Все оптимально, база сделала все самым лучшим способом :)

Alexey Brovko
Потому что использующий код не знает что было заин...

Я не очень понимаю почему это проблема метода. Если тебе нужен метод GetMenu, но без ICollection внутри, то можно * сделать две версии метода - с коллекциями и без * билдить инклюды по необязательному входному параметру, всё же инклюд это IQueryable, который можно обернуть в if и не будет проблем. "не знает" это ерунда, если у тебя метод задокументировал. Для чего нам XML-комментарии, как не для того, чтобы навести на название метода курсор и быстро узнать о возможностях метода?

Alexander
И какая альтернатива? При работе с EFCore я исполь...

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

Alexey Brovko
dbContext.Where(condition).Select(selector).ToArra...

это для многие-ко-многим? Как с этим работать? Пример: Systems и Users. В каждой системе много пользователей, у каждого пользователя много систем.

Alexander
это для многие-ко-многим? Как с этим работать? Пр...

Пока не поинмаю, какая разница, у тебя в EFе уже есть вложенные свойства, разве нет? В чем проблема с их маппингом?

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
А вот посоветуйте что-нибудь почитать на тему проектирования систем на Хаскеле? Теории по самому языку и смежным теориям - масса, но как из всех этих теорий построить архитект...
Jevgeni Goloborodko
7
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
Карта сайта