2014-01-26 45 views
0

我有兩種類型Person和Honorific,它們之間有一個0..1到很多的關係。我正在使用queryOptions.request.SetSelectExpandClass來支持擴展,並且當有一個尊敬時,它可以完美地擴展Honorific。OData在Web API中使用無類型實體對象支持時的空導航屬性

當沒有榮譽時,我需要Json有效載荷包含Honorific =(null)。在這種情況下,我從TryGetPropertyValue返回null,但Json序列化程序完全忽略了對Honorific的引用,它應該插入Honorif =(null)。任何想法如何實現這一目標?謝謝!

回答

0

我不認爲OData允許集合的值爲null。
空集合由WebAPI處理,它將在序列化期間忽略空集合。
我認爲這是WebAPI中的一個錯誤,應該在序列化過程中將一個空集合視爲一個空集合。

檢查的WebAPI吹塑的源代碼:
對於OData的V3: \src\System.Web.Http.OData\OData\Formatter\Serialization\ODataEntityTypeSerializer.cs:WriteExpandedNavigationProperty
對於OData的V4: \src\System.Web.OData\OData\Formatter\Serialization\ODataEntityTypeSerializer.cs:WriteExpandedNavigationProperty

相關問題