与EF4

2011-02-15 23 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