powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Web API oData NavigationProperty равен null
8 сообщений из 33, страница 2 из 2
Web API oData NavigationProperty равен null
    #39012272
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко3А чем тебе для рецепта не устроила EF модель? Меня никуда не несло в отличие от тебя.

Как чем, я же объяснил. EF-модель это модель данных, она представляет то, как данные хранятся, но не то, чем они являются. Например, для всех или большинства справочников может использоваться одна таблица. Но логически там могут лежать никак не связанные друг с другом данные. Да, бизнес-модель может некоторыми местами вообще не иметь особых отличий от модели EF, но всё равно -- это разные модели!

Как ты запоёшь, когда услышишь советы просовывать DbContext и его модели в представление ASP.NET MVC? Правильно, отчётливо громко. А новичков часто ставит в тупик вопрос, типа нуачо я должен пыхтеть и создавать какие-то ваши вью модели?! Не хочу париться, суну контекст! Не вижу отличий с твоим примером.

мсущко3А какой ты предлагаешь писать "негавнокод" в рецептах с Products и Categories? Да пусть даже Products и Categories пойдут в продуктив, какие проблемы пихнуть эти справочники общую odata модель? У тебя параноя?

Это не паранойаа, это опыт. Ложка говна может даже из бочки мёда сделать бочку дурной субстанции. Зачем оно нужно? Делай сразу по уму, и новичков наставляй сразу делать по уму. А то понаучатся по всяким студенческим примерам, в том числе от майкрософт, так и кобласят в таком же стиле. Сто тысяч раз наблюдал, как программисты с десятком годов опыта за плечами до сих пор фигарят так, как их в университетах научили. И тупо не понимают, что говнокодят. Вместо того, чтобы сразу делать вменяемую архитектуру, лучше мартышкин труд, убивать клаву, вместо изящного, лёгкого, сопровождаемого программирования. Технический долг конечно всегда есть, но его надо минимизировать сразу же, в разумных пределах.

Отказаться от EF модели за пределами бизнес-логики, контроллеры (не важно какие, MVC, WebAPI, OData) работают только с бизнес-моделью -- это разумные пределы и выполнимые. Не надо нарушать!

мсущко3Так рецепт такой, вот такого и фига. Есть более сложные рецепты http://codearticles.ru/articles/2486 в который я сам пишу свой транслятор и разбираю Query, чтобы обратиться к сторонней системе (у меня в боевом сервисе это Аксапте), сформировать X++ запрос, получить данные в терминах Аксапты, перемапить их в предметную область и нормальные классы OData сервиса, и отдать клиенту. Но зачем ТС'у начинать изучать технологию с таких сложных кейсов? Какие у меня "отмазоны"? Странный ты.

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

А у тебя начались отмазоны, дескать при чём тут БД ))) Я не-про-БД и не говорю. Пожалуйста, трансляторы, ок. Но зачем тебе транслятор БД через OData? Ну т.е., если это изначально не является самоцелью.


мсущко3Ну будет у меня композитный объект MyDomainType, который будет оперировать справочниками Products и Categories. В чем проблема-то?

Я про это и говорю. Более того, композитная модель с помощью проекции может вытаскивать данные без костылей типа Include и Load. Проекции! ))

мсущко3Ты просто облажался и ляпнул не в тему. Теперь расхлебываешь.

Ну-ну. Пока ты мажешься, съезжая с темы "при чём тут БД, я тут транслирую аксапту...", я тебе объясняю теорию. Экономлю тебе на книжки ))
...
Рейтинг: 0 / 0
Web API oData NavigationProperty равен null
    #39012279
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор, выпусти ты человека из бани, чо за беспредел? Устроили кровавый режим, панимаешь...
...
Рейтинг: 0 / 0
Web API oData NavigationProperty равен null
    #39012302
мсущко4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttКак чем, я же объяснил. EF-модель это модель данных, она представляет то, как данные хранятся, но не то, чем они являются. Например, для всех или большинства справочников может использоваться одна таблица. Но логически там могут лежать никак не связанные друг с другом данные. Да, бизнес-модель может некоторыми местами вообще не иметь особых отличий от модели EF, но всё равно -- это разные модели!
Есть частные случаи, когда разумно использовать композитную модель, в которой используются классы-справочники EF. У меня есть проект, где таких однотипных простых справочников порядка 30. Зачем мне выводить их в отдельные классы - это же кретинизм чистой воды. Эти классы отлично себя чувствуют в общем бизнес модели.

hVosttКак ты запоёшь, когда услышишь советы просовывать DbContext и его модели в представление ASP.NET MVC? Правильно, отчётливо громко. А новичков часто ставит в тупик вопрос, типа нуачо я должен пыхтеть и создавать какие-то ваши вью модели?! Не хочу париться, суну контекст! Не вижу отличий с твоим примером.
Причем тут DbContext и модель представления? Вызывающие классы вообще ничего не знают о DbContext. Там может быть спрятано всё, что угодно - и DbContext, и контекст аксапты, сапа и еще чего угодно. Но тем не менее, некоторые чистые классы приходят от DbContext. В частности справочники. Они от того и POCO, что я могу с ними делать всё, что угодно. Это разумный подход, а не подход зомби упорыша :)

hVosttЭто не паранойаа, это опыт.
Да какой у тебя опыт, кому ты тут лечишь Ты дальше тестов и верстания страничек пороху не нюхал ))

hVosttОтказаться от EF модели за пределами бизнес-логики, контроллеры (не важно какие, MVC, WebAPI, OData) работают только с бизнес-моделью -- это разумные пределы и выполнимые. Не надо нарушать!
Это я решу, о чего надо отказываться. Отказываться от простых POCO справочников, которые есть в EF и которые нужны в доменной модели - это шизофрения.

hVosttЭто круто и правильно. Но речь шла именно о твоём совете, eager loading это однозначный костыль. Уверен, что разрабы могли бы не делать его, если бы не толпа школоты, которая требует возможности говнокодить.
Мой совет исходит из рецепта, о котором я сказал в самом начале. Человек делает примеры по рецепту, зачем я буду его грузить аксаптами, Query трансляторами и прочей закромой OData идеологии? Ты реально упоролся что ли?


hVosttЯ про это и говорю. Более того, композитная модель с помощью проекции может вытаскивать данные без костылей типа Include и Load. Проекции! ))
Никаких проекций не надо. Есть внятный на клиенте слой, который делает то, что должен делать. Как он это должен делать, через проекции или вызовов ad hoc odata запросов, фиолетово. Заканчивай свою ламерщину уже :)

hVosttмсущко3Ты просто облажался и ляпнул не в тему. Теперь расхлебываешь.
Ну-ну. Пока ты мажешься, съезжая с темы "при чём тут БД, я тут транслирую аксапту...", я тебе объясняю теорию. Экономлю тебе на книжки ))
Ты еще слишком соплив, чтобы мне рассказывать теорию :) Лучше читай рецепты и учись делать реальные вещи. Подчеркиваю - делать, а не голосить на форуме :)
...
Рейтинг: 0 / 0
Web API oData NavigationProperty равен null
    #39012305
мсущко4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И ты так и не сказал, как помогут проекции, если у ТС директива EnableQuery не была включена? Жду ответа.
...
Рейтинг: 0 / 0
Web API oData NavigationProperty равен null
    #39012329
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко4Есть частные случаи, когда разумно использовать композитную модель, в которой используются классы-справочники EF. У меня есть проект, где таких однотипных простых справочников порядка 30. Зачем мне выводить их в отдельные классы - это же кретинизм чистой воды. Эти классы отлично себя чувствуют в общем бизнес модели.

Ну порядок в 30 справочников уже попахивает, хотя и bydesign канеш. Хотя всё равно попахивает. Ну даладно. Я так понял ты как студент размышляешь? Типа чоябуду...блыблыблы? Аниже простые.

мсущко4Причем тут DbContext и модель представления? Вызывающие классы вообще ничего не знают о DbContext. Там может быть спрятано всё, что угодно - и DbContext, и контекст аксапты, сапа и еще чего угодно. Но тем не менее, некоторые чистые классы приходят от DbContext. В частности справочники. Они от того и POCO, что я могу с ними делать всё, что угодно. Это разумный подход, а не подход зомби упорыша :)

Выделенное, это фейл. Рука-зомби-лицо.

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

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

POCO-справночники, это ж надо :) Каждый день что-то новое

Кста, как быстро мы переключились на справочники ))) А ведь был сложный eagger loading, который справочникам не нужен ведь, правда? Что с ним? Юзаешь Load-костыли, признавайся!?

мсущко4Мой совет исходит из рецепта

Т.е. ты не подумав, сказал? Просто копипаста из рецепта?

мсущко4Никаких проекций не надо. Есть внятный на клиенте слой, который делает то, что должен делать. Как он это должен делать, через проекции или вызовов ad hoc odata запросов, фиолетово. Заканчивай свою ламерщину уже :)

Ну чо ты позоришься. МОжет ты и не знаешь как делать проекциями, потому мнёшь булки тут?

мсущко4Ты еще слишком соплив, чтобы мне рассказывать теорию :) Лучше читай рецепты и учись делать реальные вещи. Подчеркиваю - делать, а не голосить на форуме :)

Ггг.. ты ещё не доучил теорию, ща ведь попросишь заценить как делать проекции, уверен на все 100!
...
Рейтинг: 0 / 0
Web API oData NavigationProperty равен null
    #39012332
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко4И ты так и не сказал, как помогут проекции, если у ТС директива EnableQuery не была включена? Жду ответа.

директива тут при чём? да, она нужна конечно чтобы одата заработала, но я ведь вообще не об этом говорил, а про костыль Load, изначально, да и вообще про юзание дбконтекста напрямую в контроллере. опять ворочаешься на сковороде, печёт небось?
...
Рейтинг: 0 / 0
Web API oData NavigationProperty равен null
    #39012468
мсущко9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttНу порядок в 30 справочников уже попахивает, хотя и bydesign канеш. Хотя всё равно попахивает. Ну даладно. Я так понял ты как студент размышляешь? Типа чоябуду...блыблыблы? Аниже простые.
Чем попахивает? В аксапте их больше сотни, между тем. Я же не виноват, что твой удел - это колупание сайта на 5 страниц. Ты просто не участвовал в больших проектах. Посади тебя куда-нить в биллинг Мегафона, вот там бы у тебя вообще яйца вскипели. Работал в 2008 на одном проекте по документообороту под них + интеграция с порталом на шарике. Так что твои высказывания по поводу попахивает не стоят и ломаного гроша, извини.

hVosttмсущко4Причем тут DbContext и модель представления? Вызывающие классы вообще ничего не знают о DbContext. Там может быть спрятано всё, что угодно - и DbContext, и контекст аксапты, сапа и еще чего угодно. Но тем не менее, некоторые чистые классы приходят от DbContext. В частности справочники. Они от того и POCO, что я могу с ними делать всё, что угодно. Это разумный подход, а не подход зомби упорыша :)
Выделенное, это фейл. Рука-зомби-лицо.
Это POCO классы, они ничего не знают о контексте. А контекст, в свою очередь, всё знает о своих POCO классах. Что тебя смущает?

hVosttЯ панимаю, что ты можешь делать с ними что угодно. Никто же не запретит тебе говнокодить, так?
Использовать POCO для модели - это гавнокод? А что же тогда будет, если использовать POCO для POCO? Ты как всегда шедеврален.

hVosttмсущко4Это я решу, о чего надо отказываться. Отказываться от простых POCO справочников, которые есть в EF и которые нужны в доменной модели - это шизофрения.
POCO-справночники, это ж надо :) Каждый день что-то новое
Учись, пока я не забанен жив :)

hVosttКста, как быстро мы переключились на справочники ))) А ведь был сложный eagger loading, который справочникам не нужен ведь, правда? Что с ним? Юзаешь Load-костыли, признавайся!?
Там Category и Product, открой глаза уже. Это справочники. На них удобно учиться по рецептам, после приходит понимание, что такое OData и как оно работает. Почти во всех мануалах по OData есть примеры с EF. Или ты предлагаешь в том рецепте транслировать Query в X++ запросы под аксапту? Под большие выборки используется фильтры в слое клиента, всё как обычно. Много не потащищь. На стороне сервера есть директивы с ограничениями. На клиенте используется ExecuteAsync.

hVosttмсущко4Мой совет исходит из рецепта
Т.е. ты не подумав, сказал? Просто копипаста из рецепта?
Что не подумав? Я не понимаю, о чем ты. Всё, что сказано мною выше - имеет силу и сейчас.

hVosttНу чо ты позоришься. МОжет ты и не знаешь как делать проекциями, потому мнёшь булки тут?
Ты выучил новое слово и начал его употреблять куда ни попадя? Молодец :) Я знаю, что такое проекции, но они в задаче 100% не нужны.

hVosttГгг.. ты ещё не доучил теорию, ща ведь попросишь заценить как делать проекции, уверен на все 100!
Ты хочешь поговорить о проекциях в этом топике? А почему не о губной помаде, например?

hVosttмсущко4И ты так и не сказал, как помогут проекции, если у ТС директива EnableQuery не была включена? Жду ответа.

директива тут при чём? да, она нужна конечно чтобы одата заработала, но я ведь вообще не об этом говорил, а про костыль Load, изначально, да и вообще про юзание дбконтекста напрямую в контроллере. опять ворочаешься на сковороде, печёт небось?
Директива притом, что она не давала с клиента формировать джойны, о которых просил автор. Что такое Load? Ты про ExecuteAsync? У него WPF, у него есть наблюдаемые коллекции, у него автоматом трачится контекст и обновляет модель. Тебе еще рано работать с такими типами проектов, сиди ковыряйся в проекциях лучше :)
...
Рейтинг: 0 / 0
Web API oData NavigationProperty равен null
    #39021264
Gul-79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла зеркальная проблема, при изменении на стороне клиента не получается изменить свойство навигации

Вот такая ошибка:

Код: xml
1.
2.
3.
4.
5.
"error":{
    "code":"","message":"No HTTP resource was found that matches the request URI 'http://localhost:19567/odata/Products(8c608281-4fdd-4528-badc-ac44142a8d37)/Category/$ref'.","innererror":{
      "message":"No routing convention was found to select an action for the OData path with template '~/entityset/key/navigation/$ref'.","type":"","stacktrace":""
    }
  }



Подскажите, где подправить?
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Web API oData NavigationProperty равен null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]