实体框架和Web Api:复杂类型的问题

时间:2015-03-04 01:53:44

标签: entity-framework odata asp.net-web-api2

我目前正在使用CodeFirst和使用WebAPI 2.2的Odata V4。事实证明,EF代码首先需要在执行任何数据库操作之前实例化所有ComplexTypes,因此我更改了我的模型类以在实体的构造函数中实例化复杂类型。这有效,数据保存在数据库中。

问题: 在Odata上,复杂类型现在被序列化为复杂类型成员的所有空值。我希望从用户体验的角度来避免我的API。

{
    "CorrelationInfo":{
    "ParentIncidentId":null,"CorrelatedCount":0,"LastCorrelatedDate":null
  }
}

正如您在上面的示例odata响应中所看到的,复杂类型中的所有属性都具有默认值。但我希望将其公开如下。

{
   CorrelationInfo:null
}

如何解决此问题?或问题的任何替代方法?

1 个答案:

答案 0 :(得分:0)

如何设置CorrelationInfo Nullable,复杂类型默认为Nullable,然后你只需设置

CorrelationInfo = null

而不是

new CorrelationInfo()

最后你可以得到:

{
  CorrelationInfo:null
}

希望这有助于:)