Linq to SQL 类型的对象图包含循环,如果禁用引用跟踪,择无法对其进行序列化。
在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型 的对象时检测到循环引用。
异常信息(部分):
---> System.Web.Services.Protocols.SoapException: 服务器无法处理请求。
---> System.InvalidOperationException: 生成 XML 文档时出错。
---> System.InvalidOperationException: 序列化类型 Web.DAL.Friends 的对象时检测到循环引用。
(后面略)
这个意思是使用Linq to SQL的时候,表和表之间有关联关系,在序列化这些相关的数据对象的时候,产生无限循环引用的现象。
这里我们可以通过配置DataContext文件来解决这个问题。
首先我们打开DataContext文件,在该文件的属性窗口中设置“序列化模式”属性为“单项”,如图所示
然后在DataContext文件的视图中选中表与表之间的关系,并设置该关系的属性。在“属性”窗口中设置“父属性”节点下的“访问权限”属性值为Internal即可,如图所示。
欢迎大家踊跃讨论并指出不足或错误的地方,一定及时改进。
联系QQ:106398492
Email:lyuec@sina.com
一份耕耘一份收获,N年工作中经验积累。如需转载请注明出处,多谢合作!
世界没有悲剧和喜剧之分,如果你能从悲剧中走出来,那就是喜剧,如果你沉缅于喜剧之中,那它就是悲剧。