代码之家  ›  专栏  ›  技术社区  ›  dani herrera

关于信令网核心的问题

  •  1
  • dani herrera  · 技术社区  · 6 年前

    问题

    脚本:

    • 信号机版本1.0.0 RC1最终版
    • dotnet核心2.0
    • 提示:用户帖子-评论模型。

    问题:

    当我通过WebSocket发送一个模型时,它会自动失败(不会向客户机发送任何消息)。如果我设置为空导航属性,它将正常工作:

        _context.Posts.Add(model);
        _context.SaveChanges();
    
        model.User.Posts = null;  // <- removing this line fails silently
    
        _hub.Clients.All.SendAsync("AddAsync", model);
    

    如何诊断发生的情况?有人知道原因是什么?


    一些不必要的代码详细信息

    User.cs

    public Guid Id { get; set; }
    // ...
    public virtual List<Post> Posts { get; set; } = new List<Post>();
    

    Post.cs

    public Guid Id { get; set; }
    // ...
    public virtual User User { get; set; }
    

    PostsController.cs

    private IHubContext<PostsHub> _hub;
    private DatabaseContext _context;
    
    public PostsController(IHubContext<PostsHub> hub)
    {
        _hub = hub;
    }
    
    // ...
    
    [HttpPost]
    public async Task<ActionResult> PostAsync([FromBody] Post model)
    {
        // ...
    
        _context.Posts.Add(model);
        _context.SaveChanges();
    
        model.User.Posts = null;
    
        _hub.Clients.All.SendAsync("AddAsync", model);
    
        // ...
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Ali Alp    5 年前

    使用json convert,将模型序列化为json,并在发送前再次将其反序列化为post对象。 如果有错误,它应该在那里弹出,因为如果有依赖循环,json convert应该抛出异常