zoukankan      html  css  js  c++  java
  • 序列化类型为XX的对象时检测到循环引用

      今天遇到的一个问题,请求一段数据,返回赋值给一个对象以后序列化失败,提示“序列化类型为XX的对象时检测到循环引用”。深入进去查看Model时,发现这个要被序列化的Model里面引用了另外一个Model,另外一个Model又引用了这个Model。

      我TM也是无语。事后排查是这两个表有外键关系,使用EF生成Model的时候,就会这样。

      这个问题解决起来也不复杂,循环引用的Model是无法序列化的,所以我们换个实体就可以了,你可以手动赋值给自定义的新实体,也可以通过属性映射,自动映射(如AutoMapper)。

      PS:外键确实可以保证数据的一致性,但是使用起来非常不便,尤其数据库迁移。数据的一致性通过代码一样可以实现,在使用数据库的时候,应当减少这些互相依赖性的东西,不然开发过程中各种掣肘,浪费时间。

         当然如果你是技术大牛,你觉得无所谓就无所谓好了。每个人看法不同,这里只是吐槽。

  • 相关阅读:
    mysql注入小测试
    让函数返回指定值实用写法
    源码下载网址
    带宽
    九度oj 题目1080:进制转换
    九度oj 题目1079:手机键盘
    poj 3046 Ant Counting
    整数拆分问题
    poj 2229 Sumsets
    九度oj 题目1411:转圈
  • 原文地址:https://www.cnblogs.com/sunshine-wy/p/13921295.html
Copyright © 2011-2022 走看看