c# - 在页面级别实现 Asp.NET core 2.2 Sessionstate 或 tempdata 等效项
问题描述
我在 Asp.NET core 2.2 中有一个报告,该报告当前访问了每页数据的数据库。我的目标是从数据库中获取大量数据子集(或整个数据集),然后在屏幕上呈现时对其进行逻辑分页。
我需要我的控制器记住在 cshtml 页面期间获取的内容,如果我使用会话状态或临时数据(指示记住列表),那么我会在用户导航离开后将结果集保留在内存中。
有没有我可以使用的构造,也许像一个老式的析构函数?
解决方案
有没有我可以使用的构造,也许像一个老式的析构函数?
不,那里没有。这个假定的析构函数应该仅在用户在连续访问几次您希望调用析构函数的页面后导航到另一个页面时触发。没有内置机制会以这种方式运行。
我使用会话状态或临时数据(指示记住列表),然后在用户导航离开后,我将面对保留在内存中的结果集
是的,这就是会话的工作方式。根据结果集的大小,您最终可能会在服务器内存中保留太多数据。
我的目标是从数据库中获取大量数据子集(或整个数据集),然后对其进行逻辑分页
通常,这种要求的最佳方案是使用数据库的分页功能,在单个请求时从数据库中获取特定页面。
这样您就不必将大型子集存储在中间件服务器的内存中。相反,从数据库中检索单个页面,提供给客户端并在请求完成时立即删除。
推荐阅读
- sql-server - 我们什么时候应该关注磁盘 I/O?
- python - 从文件读取后获取特定元素
- spring-mvc - 获取基于 Spring Boot 的 Web 应用程序的请求 url
- python - 运行龙卷风应用程序时如何关闭终端?
- c++ - C++ 在 Linux 上使用 wstring_convert
- c - 为什么 ungetc 在某些字符上会失败?
- java - Firestore:客户和发票,如何建模
- python-3.x - 西蒙说游戏使用 python 和 tkinter 遇到问题
- python - 如何在网页上实时嵌入 Jupyter?
- vba - Excel VBA Do While 循环打开最近的工作簿无限循环