0

私は 2 つのタイプの Person と Honorific を持っており、それらの間には 0..1 対 Many の関係があります。展開をサポートするために queryOptions.request.SetSelectExpandClass を使用しています。敬称がある場合に敬語を展開するのに完全に機能します。

敬称がない場合、Jsonペイロードに敬語=(null)を含める必要があります。そのような状況では、TryGetPropertyValue から null を返しますが、Json シリアライザーは、Honorif=(null) を挿入する必要がある Honorific への参照を完全に省略します。これを達成する方法についてのアイデアはありますか?ありがとう!

4

1 に答える 1

0

I don't think OData allows that the value of a collection is null.
A null collection is handled by WebAPI which will ignore a null collection during serialization.
I think it is a bug in WebAPI and a null collection should be treated as an empty collection during serialization.

Check the source code of WebAPI blow:
For OData V3: \src\System.Web.Http.OData\OData\Formatter\Serialization\ODataEntityTypeSerializer.cs:WriteExpandedNavigationProperty
For OData V4: \src\System.Web.OData\OData\Formatter\Serialization\ODataEntityTypeSerializer.cs:WriteExpandedNavigationProperty

于 2014-02-11T07:22:00.023 に答える