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

Пока битва ууидов кончилась. Объясните нубу - вот есть проект

на ASP.Net Core и к нему бд прикручена через EF. Как я понял, напрямую модельки из БД вытаскивать и добавлять плохо - нужно DTO? Может кто привести пример статьи, объясняющей как это сделать правильно

32 ответов

25 просмотров

Говорят если модель назвать юид думать уже не надо, оно само работает

кринге

Edward- Автор вопроса
Tony Werner
кринге

герр кринге

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

Если назначение сервиса - экспоузить данные из бд как есть, то почему бы и нет? OData 2 кнопки и поехали

Andrii Kurdiumov
сперва просто делай копии моделей из базы, постепе...

А разве модели нельзя в json сразу и обратно? Фокус такой провернуть

xellan𖠃
А разве модели нельзя в json сразу и обратно? Фоку...

у тебя там в EF циклические графы - JSON так не умеет.

Andrii Kurdiumov
у тебя там в EF циклические графы - JSON так не ум...

[JsonIgnore] атрибут над классом который зацикливается и все работает. У меня с этим нет проблем

xellan𖠃
[JsonIgnore] атрибут над классом который зациклива...

когда у тебя идет "отмена" функционала это очень тяжело для головы

Andrii Kurdiumov
у тебя там в EF циклические графы - JSON так не ум...

В веб проекте можно так отрубить для json зацикливание var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; });

ты "отменяешь" вещи ради "простоты" так ли это "просто" тогда?

Вот пример ef и json

xellan𖠃
Вот пример ef и json

в целом это дороже выходит так делать. может тебе и легче, но суммарно компании дороже

xellan𖠃
Если так можно, то почему так нельзя?

можно что угодно. мое мнение что это - не эффективно для любых проектов кроме маленьких - слабо "упрощает" вещи, так как любые отмены в API приводят к тому что тебе кочерыжкой думать надо, тебе надо все или только часть и когда что у тебя есть. программисты не должны так много думать.

Andrii Kurdiumov
в целом это дороже выходит так делать. может тебе ...

А как же то что контролер на входе принимает из FromBoby json сразу, без разрешения получается асп деселиризует.

xellan𖠃
А как же то что контролер на входе принимает из Fr...

там десериализуются только те поля которые ты указал.

Andrii Kurdiumov
можно что угодно. мое мнение что это - не эффекти...

Выгода только в кб трафика, по скорости разница обработки в не значительные мс идет

xellan𖠃
Вот пример ef и json

А ещё и хранить бинарные данные в виде колонки в реляционной БД - раковая опухоль замедленного действия. Посмотри в сторону s3/minio или на худой конец filestreams

Iskander R
А ещё и хранить бинарные данные в виде колонки в р...

Почему это бомба замедленного действия? Но спасибо за наводку

xellan𖠃
Почему это бомба замедленного действия? Но спасибо...

Ну у тебя твои интики булианы и чарчики малость оффсетами обмажутся

xellan𖠃
Почему это бомба замедленного действия? Но спасибо...

dba.stackexchange.com/questions/2445/should-binary-files-be-stored-in-the-database

Антон
Ну у тебя твои интики булианы и чарчики малость оф...

Не обмажутся если идентификаторы в порядке

Антон
Ну у тебя твои интики булианы и чарчики малость оф...

А когда их станет много, проблемочки появятся из-за индексиков в оффсетиках

Антон
А когда их станет много, проблемочки появятся из-з...

странное суждение ибо у того же чата этих индексов тоже не мало. Так и там свои уникальные id

xellan𖠃
Выгода только в кб трафика, по скорости разница об...

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

Andrii Kurdiumov
я вообще не про скорость. это про то что у тебя ес...

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

Andrii Kurdiumov
API endpoints ~= экранный формы

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

Iskander R
dba.stackexchange.com/questions/2445/should-binary...

Там часть ответов за бд, часть за хранилище, но по сути зависит от конкретной задачи. На вкус и цвет каждому свое как говорится. Если у меня нет в проекте например такого что нужно быть расширить файловое хранилище, то бд будет лучшим решением и также для передачи картинок зачем мне делать потоковую передачу данных? Если жалкие 500кб можно отправить через буферизацию и при этом нагрузки не будет сильной даже если пользователей будет много

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта