Caching 将数据保存在DAL中的内存缓存(使用石英)中,并从BAL中的缓存中获取数据

Caching 将数据保存在DAL中的内存缓存(使用石英)中,并从BAL中的缓存中获取数据,caching,asp.net-core-webapi,quartz-scheduler,quartz.net,in-memory,Caching,Asp.net Core Webapi,Quartz Scheduler,Quartz.net,In Memory,在我的.Net核心API应用程序中,我有多层体系结构(即API层、业务逻辑层和数据访问层),我使用Quartz(作业调度库),它将在应用程序启动时执行作业,在该作业中,我直接从DAL调用一个方法,该方法将从DB获取数据,并将数据保存在内存缓存中。 之后,当我尝试在业务逻辑层中获取数据(使用保存数据时使用的相同缓存密钥从缓存中获取数据)时,我从缓存中获取空值。 但当我从控制器调用相同的DAL方法(将数据从DB中获取并保存到缓存中)时,我就能够使用相同的缓存键从缓存(应用程序中的任何位置)获取数据。

在我的.Net核心API应用程序中,我有多层体系结构(即API层、业务逻辑层和数据访问层),我使用Quartz(作业调度库),它将在应用程序启动时执行作业,在该作业中,我直接从DAL调用一个方法,该方法将从DB获取数据,并将数据保存在内存缓存中。 之后,当我尝试在业务逻辑层中获取数据(使用保存数据时使用的相同缓存密钥从缓存中获取数据)时,我从缓存中获取空值。
但当我从控制器调用相同的DAL方法(将数据从DB中获取并保存到缓存中)时,我就能够使用相同的缓存键从缓存(应用程序中的任何位置)获取数据。 我想让Quartz做这件事(即从DB获取数据并将其保存到DAL中的缓存中),但不是从控制器端。
请任何人在这个问题上帮忙