DataServiceContext不会将相关实体读入实体对象

时间:2014-11-27 12:32:59

标签: odata asp.net-web-api wcf-data-services

我正在调用OData V3 WebApi,扩展了一些相关实体,如下所示:

var cenarioInvestimentoEscolhido = Container.CenarioDeInvestimentoEscolha.Expand("CenarioDeInvestimentoCenario,CenarioDeInvestimentoCenario/Cenario,CenarioDeInvestimentoCenario/Aeronave").Where(c => c.CenarioDeInvestimentoCenario.CenarioDeInvestimento.Aerodromo.CodigoIcao.Equals(idAerodromo)).SingleOrDefault();

这是由表达式

生成的绝对URI
https://localhost/SAC/WebAPI/ODataWebApi/CenarioDeInvestimentoEscolha()?$filter=CenarioDeInvestimentoCenario/CenarioDeInvestimento/Aerodromo/CodigoIcao%20eq%20'SNBR'&$top=2&$expand=CenarioDeInvestimentoCenario,CenarioDeInvestimentoCenario/Cenario,CenarioDeInvestimentoCenario/Aeronave

这是API响应的结果集:

{
    "odata.metadata":"https://localhost/SAC/WebAPI/ODataWebApi/$metadata#CenarioDeInvestimentoEscolha","value":[
      {
          "CenarioDeInvestimentoCenario":{
              "Aeronave":{
                  "Id":4,"Codigo":"B738","Nome":"737-800","IdFabricante":3,"Pmd":"80-90%","Categoria":"4C"
              },"Cenario":{
                  "Id":3,"Nome":"Cen\u00e1rio 3"
              },"IdAerodromo":112,"IdCenario":3,"IdAeronave":4,"CategoriaDeAeronave":"4C","Subtotal":"39587651.01","EventualAcrescimo":"3958765.10","Total":"43546416.11"
          },"IdAerodromo":112,"IdCenario":3,"DataInformadoBancoBrasil":"2014-03-11T00:00:00","NumeroOficio":"46/2014/SEAP/SAC-PR","DataEscolhaSalaMonitoramento":"2014-03-17T00:00:00","DataEscolhaSacpr":"2014-03-18T00:00:00"
      }
    ]
}

如您所见,有一个名为 CenarioDeInvestimentoCenario 的实体,其相关实体 Aeronave Cenario 。 Howevar,这两个孩子在这次电话会议之后都是空的,就好像他们没有被反序列化一样。

我已经检查了ReceivingResponse事件中的响应流,实际上已收到相关信息。为什么这些属性为空?这是一些序列化问题吗?

1 个答案:

答案 0 :(得分:0)

您的控制器操作之上是否有此属性?

[EnableQuery(MaxExpansionDepth = X)]