gpt4 book ai didi

c# - 3 层架构中的 SQL 依赖性和 SignalR

转载 作者:太空狗 更新时间:2023-10-29 21:56:58 25 4
gpt4 key购买 nike

我们有一个 Web 应用程序,它由一个带有 UI 的 3 层后端(Controller/Biz/Data)组成。我们的数据层只负责从数据库实例 (SQL) 中提取数据,业务层向数据发送消息并创建派生属性, Controller 负责将这些更改发送到 UI。

我们需要在我们的应用程序中进行实时更新,必须在数据库级别(而不是 Controller 级别)跟踪这些更新。

我们选择使用 SQL Dependency 和 SignalR 作为我们的解决方案。

我对 SignalR 和 SQL 依赖项的所有研究都在数据库级别,其中 SQL 依赖项将识别更改和广播,所有这些都在数据层内。出于显而易见的原因,这种方法将绕过在业务层中创建的派生属性,并为我们提供一个不同外观的对象。

我能想到的唯一解决方案是使用 SQL Dependency 来跟踪更改,将它们转储到某个表/对象中,然后使用轮询从 Controller 获取那些,到业务层,到数据层,然后返回向上。

  • 问题 1:是否有更好的解决方案?
  • 问题 2:包含业务层逻辑但仍能够跟踪数据层变化的最佳解决方案是什么?
  • 问题 #3:这是否可以不进行轮询?

最佳答案

您的数据层正在捕获数据库引发的事件。让它将数据映射到适当的 DTO,然后引发一个事件以供业务层捕获。然后,业务层可以向 View 层引发事件, View 层可以执行 SignalR Broadcast()。冒泡!

关于c# - 3 层架构中的 SQL 依赖性和 SignalR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34636832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com