與EF4

2011-02-15 22 views
2

我想帶着孩子到jQuery的JSON AJAX功能回到實體框架4的對象,但我得到一個循環引用錯誤循環引用 - 總之我的方法是這樣的與EF4

[WebMethod] 
public static JSONObject Get() 
{ 
    WebHelper.JSONObject lJSONObject = new WebHelper.JSONObject(); 

    lJSONObject.Object = Repository.Parent.Include("Child.Child").FirstOrDefault(); 

    return lJSONObject; 
} 

如果我這樣做不包括兒童的功能正常工作,但與孩子的循環參考發生。任何想法我可以做什麼來解決這個問題?

+0

問題的根源在於JSON cannont處理循環引用 – 2011-02-16 06:23:45

回答

5

你必須返回一個JSONObject?如果沒有,你可以嘗試使用Json.NET,將妥善處理循環引用:

var settings = new JsonSerializerSettings 
        { 
         ReferenceLoopHandling = ReferenceLoopHandling.Ignore 
        }; 

JsonConvert.SerializeObject(object, Formatting.Indented, settings); 

我的猜測是,JsonObject很簡單,就是將序列化的實體,並把它的響應流,這是很簡單的包裝做手動。

0

我有同樣的問題。不知道是否有其他解決方案,但是我已經創建了自己的Serialize方法。

+0

這是一個絕密的代碼或者是否有可能你可以給一個鏈接,在這裏或之前通過它? – keysersoze 2011-02-15 19:11:58

+0

我猜不是...但你的序列化方法應該根據你的應用程序工作。所以我不會對你有所幫助。這是我所做的(PS:ScriptIgnore不適合我):首先我得到了用於序列化我的對象的模式(在我的情況下,我需要序列化,而不是像你一樣添加項目,但主體是相同的),但通常應該像{var1:'val1',var2:'val2'}等等......然後,基於該標準,您可以創建自己的序列化/「de」序列化方法。這有點粗糙,但這對我來說很有用,我非常確定Json的序列化工作幾乎相同。 – eestein 2011-02-16 12:07:10

+0

原理,不是委託人:P – eestein 2011-02-16 12:23:30