return Json对象时序列化错误
当要序列化的表与另一个表是一对多的关系是,表1序列化时会找到另一个表2关联的字段,会将另一个表2进行序列化,然后表2中也有一个字段与表1关联,这样序列化就会产生循环序列化。
在网上进行搜索,其中大多数的方法都是说通过设置db.Configuration.LazyLoadingEnabled=fasle禁用懒惰加载,但是这也让我们不能方便的使用EF提供的这一方便功能。
经过不断的摸索,发现只要在返回json对象之前,将关联表的数据提前取出来,就可以避免这种情况。如Student表中有Class表中的ClassNo数据,当我们要展示学生信息时,想要展示ClassName,这时可以使用Student.Class.ClassName,但是这个时候如果想要通过json格式数据返回到前台,会发现数据出现重复序列化的错误。一个好的解决办法是利用C#的匿名类,将需要展示的数据封装到匿名类中,然后转换成json格式的数据,传递到前台。这样问题就解决了。