EF4的循环引用

key*_*oze 2 c# asp.net jquery json entity-framework-4

我试图将带有子节点的Entity Framework 4对象返回到jQuery JSON AJAX函数,但是我得到一个循环引用错误 - 简而言之,我的方法看起来像这样

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

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

  return lJSONObject;
}
Run Code Online (Sandbox Code Playgroud)

如果我不包括子项,则函数可以正常工作,但是对于子项,则会出现循环引用.我有什么想法可以解决这个问题?

Dan*_* T. 5

你必须返回一个JSONObject吗?如果没有,您可以尝试使用Json.NET,它将正确处理循环引用:

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

JsonConvert.SerializeObject(object, Formatting.Indented, settings);
Run Code Online (Sandbox Code Playgroud)

我的猜测是,JsonObject它只是一个包装器,它将序列化实体并将其放在响应流上,这很简单,可以手动完成.