В asp.net core 3.1(LTS — задумайтесь!) завезли Json который падает на объектах EF из-за взаимных ссылок объектов.
Полбеды, причем обновление JSon до 5.0 ничего не дало. будь добр постав .net5(Когда они прекратят эту чехарду с названиями, по мне уж лучше бы давали кодовые имена типа — рыжий лис, хромая лошадь...).
А студия? в 2019 невозомжно кодить, стабильно встает колом при редактировании долбанных razor pages (cshtml). Второй день мучаюсь.
Вот уже полчаса висит. Все жду чуда. ХЗ че за фигня. ну упала бы или еще что. А А А А!
Уже подумываю как бы отделить мух от котлет, чтобы делать НОРМА(!)льные html в нормальном VS Code. Понапридумывают.
Здравствуйте, varenikAA, Вы писали:
AA>Уже подумываю как бы отделить мух от котлет, чтобы делать НОРМА(!)льные html в нормальном VS Code. Понапридумывают.
Здравствуйте, varenikAA, Вы писали:
AA>В asp.net core 3.1(LTS — задумайтесь!) завезли Json который падает на объектах EF из-за взаимных ссылок объектов.
Просто не стоит возвращать/передавать объекты EF из asp.net core, и вовсе не из-за того, что они не пролезают через json, а потому что объекты ORM — это внутренняя реализация, которой не должно быть на краях системы.
Здравствуйте, mrTwister, Вы писали:
T>Просто не стоит возвращать/передавать объекты EF из asp.net core, и вовсе не из-за того, что они не пролезают через json, а потому что объекты ORM — это внутренняя реализация, которой не должно быть на краях системы.
И зачем тогда вообще EF нужно?
Если у клиента есть контакт, контакт привязан к клиенту, куда эту связь девать?
Предлагаете использовать плоский словарь?
Здравствуйте, varenikAA, Вы писали:
AA>И зачем тогда вообще EF нужно?
Для сохранения (персистенции) доменной модели.
AA>Если у клиента есть контакт, контакт привязан к клиенту, куда эту связь девать? AA>Предлагаете использовать плоский словарь?
Это уже вопрос построения внешнего API. Зависит от того, как будет удобнее клиентам этого API, от количества клиентов, их ограничений, объема данных и т.д. EF тут точно никаким боком.
Здравствуйте, ути-пути, Вы писали:
УП>Здравствуйте, varenikAA, Вы писали:
AA>>Так в этом то и дело. Что EF не причем, просто в LTS версии сырой Json сериализатор.
УП>Сериализатор сам не может знать, как разрывать циклы.
Почему нет? сериализовать то как раз просто(в памяти все связи определены(как-то же из базы загрузили?)), с десериализацией могут быть проблемы, т.к. в стандартном json не сохраняются ссылки.
просто в asp.net core 2 сериализатор использовался с имеющимся функционалом, а в релизе с долговременной поддержкой
тупо взяли и заменили на менее функциональный и живи с этим как хочешь или переползай на багодром net5.
Здравствуйте, varenikAA, Вы писали:
AA>Здравствуйте, ути-пути, Вы писали:
УП>>Здравствуйте, varenikAA, Вы писали:
AA>>>Так в этом то и дело. Что EF не причем, просто в LTS версии сырой Json сериализатор.
УП>>Сериализатор сам не может знать, как разрывать циклы.
AA>Почему нет? сериализовать то как раз просто(в памяти все связи определены(как-то же из базы загрузили?)), с десериализацией могут быть проблемы, т.к. в стандартном json не сохраняются ссылки.
AA>просто в asp.net core 2 сериализатор использовался с имеющимся функционалом, а в релизе с долговременной поддержкой AA>тупо взяли и заменили на менее функциональный и живи с этим как хочешь или переползай на багодром net5.
Видишь ли, способов сериализовать граф с циклами несколько. Можно определение объекта вставлять по месту ссылки, можно использовать ключи для ссылок. И что брать ключом — вопрос, а где будет место определения — снова вопрос.
Поэтому я бы ни стал надеяться что магический сериализатор сам решит эти вопросы. В Newton.Json есть для этого дыры особые с конверторами, и то не на все случи.
Сериализуй ручками , делов то.
_>Видишь ли, способов сериализовать граф с циклами несколько. Можно определение объекта вставлять по месту ссылки, можно использовать ключи для ссылок. И что брать ключом — вопрос, а где будет место определения — снова вопрос. _>Поэтому я бы ни стал надеяться что магический сериализатор сам решит эти вопросы. В Newton.Json есть для этого дыры особые с конверторами, и то не на все случи. _>Сериализуй ручками , делов то.
Это понятно, но зачем изобретать свой велосипед, если в asp.net core 2 уже использовался по умолчанию проверенный сообществом.
ЗЫ С таким бардаком пакетов скоро дотнет переплюнет js.
Здравствуйте, varenikAA, Вы писали:
AA>Здравствуйте, barn_czn, Вы писали:.
AA>Это понятно, но зачем изобретать свой велосипед, если в asp.net core 2 уже использовался по умолчанию проверенный сообществом.
Об этом писали и не раз.
Вкратце, Newtonsoft Json недостаточно быстр.
Ускорить его можно но это требует поломки API.
Так как слишком много на него завязано, решили, что проще сделать новую разработку.