#asp.net #json #controller #odata
Вопрос:
У меня есть такая сущность, как эта
public class MyDto
{
public string string1;
public string string2;
public MyCustomClass myCustomClass;
}
У меня есть два контроллера, один из них полностью соответствует спецификациям Odata, содержит весь CRUD, все они работают хорошо.
И еще один использует другой маршрут, чтобы сделать подобную ерунду, как это:
[Route('newWay')] //did not use ODateRoutePrefix here
public class SecondController: ODataController
{
[HttpPost]
[Route('create')]
public async Task<IActionResult> Create(...);
[HttpPatch]
[Route('update')]
public async Task<IActionResult> Update(...);
/* Here's the problem */
[HttpGet]
[Route('get')]
[EnableQuery]
public async Task<IQuerable<MyDto>> Get(ODataQueryOptions<MyDto> option);
/* Here's the problem */
}
Когда сообщение , подобное этому newWay/get?$select=myCustomClass
, показывает пустое значение Dto, подобное этому
[]
Когда сообщение , подобное этому newWay/get?$select=myCustomClass,string1
, показывает только строку 1, подобную этой
[
"string1": "balabala"
]
Но когда я публикую без свойства select, оно может возвращать все правильно
Так что же происходит с моим вторым контроллером?