【发布时间】:2011-05-25 02:14:41
【问题描述】:
我有一个使用 Entity Framework 4 的 MVC-3 (RC1) 应用程序。
我希望从控制器操作中返回一个 JSON 对象。该对象被其他对象引用,显然返回引用。
因此我收到以下循环引用错误:
“/”应用程序中的服务器错误。
检测到循环引用 在序列化类型对象时 'Application.Models.ReferenceObject'。
描述:未处理的异常 在执行过程中发生 当前的网络请求。请查看 堆栈跟踪以获取有关的更多信息 错误及其起源 代码。
异常详情: 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"));
其中**<method>** 是与ObjectQuery(Of T).Include 方法相反的方法,ObjectsReferencingThis 是导致循环引用的属性。
注意:我不希望删除这些属性或创建 POCO,因为这只会影响 Json 序列化。
有人可以帮忙吗?
:)
【问题讨论】:
标签: entity-framework-4 asp.net-mvc-3 objectquery