• T4模板序列化Json循环序列问题


    在便利导航属性的位置加上[JsonIgnore]特性标签,保存T4模板,那么在对应的模型属性就会自动生成[JsonIgnore]特性标签解决循环序列化问题

    当时给用户分配角色的时候,角色分配上了,查询数据库也成功分配了,但是当退出该用户重新登录的时候发现报错了,登录不进去,最后使用一个从来没有分配过角色的用户登录进去,发现可以了。最后分析得出是因为用户<——>角色,两张表是多对多关系,当你为该用户完成分配角色的时候,这时候用户表的角色导航属性就有值,那当你退出重新登录以后,经过memcache校验需要把用户表这个模型对象userInfo序列化,这里就开始了循环引用问题:序列化userInfo,因为里面有roleInfo这个导航属性,然后接着序列化roleInfo,又因为userInfo与roleInfo是多对多关系,数据库会产生一个中间表存有userInfoID与roleInfoID,在EF里模型表现就是userInfo有一个导航属性roleInfo,这是一个集合,表示一个userInfo可以拥有多个roleInfo,同理,roleInfo里面也有一个导航属性userInfo,所以序列化roleInfo的时候又回来序列化userInfo,所以导致循环引用序列化问题。

    并且把用到微软原生Json()序列化对象的地方都换成,Newtonsoft.Json这种开源序列化方法来完成

  • 相关阅读:
    [LeetCode] 582. Kill Process
    [LeetCode] 686. Repeated String Match
    [LeetCode] 341. Flatten Nested List Iterator
    [LeetCode] 404. Sum of Left Leaves
    [LeetCode] 366. Find Leaves of Binary Tree
    [LeetCode] 1485. Clone Binary Tree With Random Pointer
    [LeetCode] 459. Repeated Substring Pattern
    [LeetCode] 565. Array Nesting
    [LeetCode] 679. 24 Game
    [LeetCode] 364. Nested List Weight Sum II
  • 原文地址:https://www.cnblogs.com/BOSET/p/7027184.html
Copyright © 2020-2023  润新知