2015-03-30 4 views
0

У меня есть структура OData ответа, как показано ниже,Как исключить узел в OData

{ 
"value": [{ 
    "a": "10", 
    "b": "10", 
    "c": "10", 
    "Description": null, 
    "ExtendedValues": [{ 
     "x1": "val1", 
     "y1": "val2", 
     "z1": "val3" 
    }, 
    { 
     "x2": "val1", 
     "y2": "val2", 
     "z2": "val3" 
    }, 
    { 
     "x3": "val1", 
     "y3": "val2", 
     "z3": "val3" 
    }, 
    ], 
}] 

}

Я просто хочу знать, если есть способ, чтобы исключить конкретный узел из ответа. Например, мне нужно исключить ExtendedValues ​​из ответа. Хотя я мог бы сделать это, используя $ select и предоставить все необходимые свойства.

ответ

1

Есть несколько способов сделать это:

1 Использование IgnoreDataMember в ConventionModelBuilder. В WebApiConfig.cs файле

ODataConventionModelBuilder builder = new ODataConventionModelBuilder(); 
builder.EntityType<Person>().Ignore(p => p.Description); 

Тогда свойство Описание будет исключено, но он также будет исчезать в $ метаданных

-Вы всегда можете сделать такую ​​вещь работы, определив несвязанную функцию, чтобы вернуть значение, которое вы хотели , Пожалуйста, обратитесь к sample

3 Если у вас много бизнес-логики, вы можете попробовать RESTier - структуру, основанную на API-интерфейсе Web API, и упростить реализацию бизнес-логики. Больше можно увидеть на http://odata.github.io/RESTier/. Вы можете следить за учебником по настройке объекта «Запуск 2», . Но в настоящее время RESTier по-прежнему является версией предварительного просмотра.

+0

Спасибо за ваш ответ. Я думаю, что мой вопрос не ясен, я спрашиваю, есть ли какая-либо операция в спецификации Odata, которая говорит, что операция исключает несколько параметров из ответа. для Ex, $ select позволит нам выбирать феилы, которые нам нужны. Мне нужно что-то вроде $ exclude.I не удалось найти его в http://www.odata.org/ – Ravisha

+0

Итак, вы имеете в виду протокол OData, если есть что-то вроде $ exclude? Ну тогда, может быть, ответ - нет, по крайней мере, в настоящее время версия V4. Но тем не менее, я хотел бы знать ваши причины, по которым вы должны быть $ exclude в протоколе. – QianLi

Смежные вопросы