C# 在这种情况下可以使用信号器吗?

C# 在这种情况下可以使用信号器吗?,c#,asp.net-mvc,signalr,C#,Asp.net Mvc,Signalr,我需要帮助我采取的方法 所以我有这样一个场景,在我的一个MVC应用程序中使用DataReader从数据库获取数据。在端点(即web api控制器),我以IEnumerable类型返回数据 我正在使用foreach()从IEnumerable一次读取一行数据,并使用SignalR将数据返回给客户端。因此,客户机在服务器端调用一个方法,服务器开始连续地(逐行)传输数据 现在我想以块的形式返回数据,而不是一次返回一行,我设法修改了foreach循环并一次返回“n”行(因此现在它一次发送n行),但它一直

我需要帮助我采取的方法

所以我有这样一个场景,在我的一个MVC应用程序中使用DataReader从数据库获取数据。在端点(即web api控制器),我以
IEnumerable
类型返回数据

我正在使用
foreach()
从IEnumerable一次读取一行数据,并使用SignalR将数据返回给客户端。因此,客户机在服务器端调用一个方法,服务器开始连续地(逐行)传输数据

现在我想以块的形式返回数据,而不是一次返回一行,我设法修改了foreach循环并一次返回“n”行(因此现在它一次发送n行),但它一直发送,直到数据用完,然后关闭连接

我之所以以块的形式发送数据,是为了在UI的页面中显示数据(角度)

我这里的问题是,我是否可以按需调用信号器,就像它发送前10行一样,然后等待客户端单击下一页,并再次从11行发送到20行,依此类推。。(我试图避免每次客户端调用都调用数据库,因此循环应该从以前的位置开始)

我没有给客户端一个跳转到特定页面的选项(只是一页接一页)

另外,我想知道我们是否可以保持前几页的状态,这样,如果客户端想要转到前几页。(如果不将数据保存在内存中,我认为这是不可能的,因为我正试图避免将数据保存在内存中)

请告诉我在这种情况下是否可以使用信号器。如果不是,那么什么是一个好的方法

我是新来的信号员,我也是C#的初学者,所以请对我放松点

如果您需要进一步的澄清,请告诉我。

我想知道您的意思是“信号机应该以这种方式使用吗?”

你的问题不是真正的信号机问题。您可能希望将分页添加到api中,在单个请求中进行查询,获取所需内容,关闭连接并将数据返回到客户端

现在,如果用户单击以加载更多数据,即请求(Pull),则不需要signar(Push)


这可能不是Signal的最具可扩展性的使用。

我无法在数据库级别限制数据。我应该在问题中提到这一点。因此,我无法在运行时修改查询,使其每次调用仅捕获n行。对不起。你的问题太广泛,无法用简单的方式回答。请尝试重新措辞,避免像“我应该在问题中提到这一点”这样的评论。很高兴看到您已经尝试过的一些简化示例。