我有一个应用程序,它有许多WCF服务,它们使用LINQ-To-SQL作为数据访问模型。我在“Dispose后访问的DataContext”异常中遇到了很多问题。我理解这个异常是什么,并且它正在发生,因为我没有“初始化”试图访问的数据。我读过很多文章,建议我在服务返回父对象之前在任何数组上调用ToList()。
我的问题是我得到了这个例外,我不知道它来自哪里,因此我不知道什么是未初始化的。
有人可以建议如何最好地确定根本原因吗?
(我使用过MS服务跟踪查看器,这似乎没有给我任何进一步的信息)
答案 0 :(得分:1)
我发现问题的根本原因是linq-to-sql中有一个用DataContract属性修饰但需要将IsReference属性设置为true([DataContract(IsReference=true)]
)的类。该类的属性也不是DataMember,需要([DataMember(EmitDefaultValue=false)]
)。设置这两个属性解决了我的问题。