我有一个使用 Entity Framework 4 的 MVC-3 (RC1) 应用程序。
我希望从控制器操作返回一个 JSON 对象。这个对象被其他对象引用,显然返回引用。
因此,我收到以下循环引用错误:
“/”应用程序中的服务器错误。
序列化“Application.Models.ReferenceObject”类型的对象时检测到循环引用。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidOperationException:在序列化“Application.Models.ReferenceObject”类型的对象时检测到循环引用。
注意:Application和ReferenceObject显然是实际命名空间/对象的替代品。
根据Stack Overflow: Circular reference exception when serializing LINQ to SQL classes,这可以使用 JSON.Net 来克服;但是我想避免这种情况,而是尝试从被序列化的对象中排除有问题的引用属性。
我是什么意思?
我想做这样的事情:
IList<ReferenceObject> list = Repository.GetReferenceObjects();
return Json(list.**<method>**("ObjectsReferencingThis"));
where**<method>**
是一些与方法相反的ObjectQuery(Of T).Include
方法,并且ObjectsReferencingThis
是导致循环引用的属性。
注意:我不希望删除这些属性或创建 POCO,因为这只会影响 Json 序列化。
请问有人可以帮忙吗?
:)