首页 > 解决方案 > 如何为每个登录用户拥有一个持久数据容器 - ASP.NET Core

问题描述

我搜索了很多帖子,但我找不到一个能满足我确切具体要求的问题。这是我想要实现的目标:

背景:

我有一个 ASP.NET 核心 MVC 应用程序。我试图通过重用没有定期更改的数据来最小化数据库访问。我有两组数据,我称之为静态和动态

静力学:它们在整个应用程序生命周期内都不会改变。(实体类型、状态名称等)

动态:它们特定于每个登录。(业务详细信息、服务列表、税务详细信息等。每个登录用户都会有所不同)

对于静态,在应用程序启动时,我转到数据库并将这些值存储在静态类的静态字段中。从现在开始,每个人都无需访问数据库即可拥有这些数据。到目前为止,一切都很好。所有层都使用静力学;演示文稿,业务,坚持。这为我节省了大量的数据库旅行。

我的问题

我希望 Dynamics 的以下行为每次用户登录时,只会为该用户填充一个数据容器(类似于 Statics)。因此,只要该用户登录,她就不需要访问数据库来满足她对 Dynamics 中任何内容的需求

当另一个用户登录时,他会获得自己的一组动态数据容器,他可以在应用程序的任何位置使用该容器。从所有层。

我怎样才能实现这个功能?

Statics 是业务层中的一个类,它有自己的数据管理器,在应用程序启动时被调用。

我需要为 Dynamics 设置一个类似的设置,它有自己的数据管理器,每个用户登录时都会调用它来填充 Dynamics 并在登录期间重用数据。

自然,我不能使用静态类和静态字段,因为每次登录都会覆盖它们,并且所有其他用户都会得到不正确的数据。

提前谢谢了

标签: c#asp.net

解决方案


推荐阅读