Поддерживает ли адаптер Odata запрос исправления с запросом $expand во время операций CRUD?

У меня есть компонент с ODataAdaptor в качестве источника данных, теперь я хотел бы сделать запрос Patch с запросом $expand, как я делаю для GET запрос (поскольку запрос GET открыто поддерживает запрос $expand). Но я понятия не имею, принято ли это или есть ли другой способ, которым я могу заняться, чтобы подойти к этой проблеме?

Фактический запрос: http://localhost:49807/odata/Orders(10249)

Ожидаемый запрос: http://localhost:49807/odata/Orders(10249)/? $expand=OrderDetail($select=CustomerID)

с запросом $expand в запросе исправления.


person Logesh    schedule 13.02.2019    source источник


Ответы (1)


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

  1. Добавьте атрибут [EnableQuery] в метод конечной точки Patch.
  2. Убедитесь, что ваш ответ на исправление возвращает результат IQueryable, или что вы агрессивно включаете / стремитесь загрузить все потенциальные расширения к вашему объектному ответу внутри тела метода, тогда сериализатор вернет расширенный граф объекта.
person Chris Schaller    schedule 16.08.2020