LINQ to SQL类序列化时的循环引用异常

CVe*_*tex 7 .net c# serialization json json.net

我有一组linq to sql类,并使用.NET JavaScriptSerializer将它们序列化为JSON.

但是,只要我将记录添加到关联表中,序列化就会抛出"循环引用异常".Aaarggh!

这里详细描述.

我有几个选择

  • 将linq转换为sql类到没有关系的类,从而避免循环引用
  • 通过归零关联来剪切循环引用 - 我不认为这是一个真正的选项
  • 使用ScriptIgnoreAttribute(不知何故).我无法轻松应用它,因为属性在生成的类中,LINQ to SQL不会自动遵循伙伴类
  • 使用JSON.NET并以某种方式使用属性+伙伴类来阻止序列化程序尝试跨越关系.

有人遇到过这种情况么?如果可能的话,我真的更喜欢最后一个选项,但我不知道该怎么做.

任何帮助是极大的赞赏

Jam*_*ing 8

最新版本的Json.NET支持序列化循环关系.在帮助中查看保留对象引用.

  • 写了一篇博文,详细介绍了这个设置:http://www.johnnycode.com/blog/2012/04/10/serializing-circular-references-with-json-net-and-entity-framework/ (2认同)