2013-04-10 52 views
2

我旁邊類:如何在Asp.Net web api中返回深度序列化對象(具有複雜類型屬性)?

public class Event 
{ 
    public int Id { get; set; } 
    public string Title { get; set; } 
    public string Description { get; set; } 
    public List<ImageLink> Images { get; set; } 
} 

public class ImageLink 
{ 
    public int Id { get; set; } 
    public string Url { get; set; } 
} 

我的行動:

public IQueryable<Event> GetEvents() 
{ 
    var events = EventsRepository.Events.AsQueryable(); 
    return events; 
} 

EventsRepository.Events - 返回我的事件有許多imageslink,但在brouser我沒有看到他們:

"odata.metadata":"http://localhost:28286/odata/$metadata#Events","value":[ 
    { 
     "Title":"Title", 
     "Description":"Description" 
    },... 

我知道Odata有$ expand選項,但似乎尚未支持。 如何強制我的應用程序返回深度可序列化的對象?因爲我想將所有包含的數據都存入我的客戶端。

回答

2

如果將ImageLink建模爲複雜類型,則Event的響應有效內容將包含內聯的ImageLink。你可以告訴模型構建器來映射ImageLink的使用作爲一個複雜類型,

modelBuilder.ComplexType<ImageLink>(); 

正確的方式做到這一點,雖然是使用$擴大。我們現在正在進行$ select和$ expand的支持工作,並且應該在下週早些時候進行夜間工作。

+0

我可以訂閱什麼來獲取有關任何更改的通知嗎? – 2013-04-10 18:28:50

+1

[This](https://aspnetwebstack.codeplex.com/project/feeds/rss?ProjectRSSFeed=codeplex%3a%2f%2fsourcecontrol%2faspnetwebstack)RSS提要包含所有源代碼提交aspnetwebstack項目。無論如何,我會記得在這裏發表評論,或者在我們有一些事情後再發表意見。 – 2013-04-10 18:33:06

+2

$ select和$ expand現在可在夜間構建中使用。關於如何檢查這個[post](http://blogs.msdn.com/b/henrikn/archive/2012/04/29/using-nightly-nuget-packages-with-asp-net-web-stack.aspx)使用我們的每晚構建。 – 2013-04-29 18:50:44

相關問題