基于Wes Grants在这个帖子中回答:Serializing Entity Framework problems
我尝试了以下代码:
string sid = HttpContext.Current.Request["Sid"];
SYSTEM system = context.SYSTEM.Where(s => s.SYSTEM_ID.Contains(sid)).First();
context.Detach(system);
HttpContext.Current.Response.Write(serializer.Serialize(system));
但我仍然得到循环引用异常。我错过了一些明显的东西吗?感谢
答案 0 :(得分:0)
如果您使用的是EntityObjects而不是POCO,则无法执行此操作。原因是如果您的SYSTEM
类型派生自EntityObject
,它会继承一些也将被序列化的属性。请参阅here和here。
解决方案是
JavaScriptSerializer
编辑:
如果您已经在使用POCO,原因可能是EF内部为您的POCO创建了proxy classes,以便更改跟踪和延迟加载。这些代理类是动态创建的,可能导致序列化失败。