每次网站在 ASP.NET MVC 中 运行 时,如何传递已存储在数据库中的数据?

How to pass already stored data in the database each time the website is run in ASP.NET MVC?

每次网站在 ASP.net MVC 中 运行 时,如何传递已存储在数据库中的数据? 我有一个带有方法的控制器,我希望每次我 运行 应用程序时都对已存储的数据执行它。 还有什么方法可以改变这种存储的数据及时传递到控制器的方式。假设我希望每五分钟将此存储的数据传递到控制器中的方法一次。

您需要的是 cache 单例。

例如

public interface IMyStuff{
 string VeryImportantStringHere {get;}
}

public MyStuff :IMyStuff {

public string VeryImportantStringHere => {
    var cached = HttpRuntime.Cache.Get(nameof(VeryImportantStringHere));
    if(cached != null) // might need to store something else if you could have nulls in db
    {
         return cached ;
    }

    cached = .... // retrieved from DB however you do it - ADO.net, Linq2Sql, EF etc...

    Cache.Insert(nameof(VeryImportantStringHere), cached , null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5));

    } 
}

然后在你的控制器中,使用任何 DI:

public controller MyController : Controller{

private IMyStuff _ms;
public MyController(IMyStuff ms)
{
    _ms = ms;
}

[HttpGet]
public ActionResult Whatever(){
    var cached = _ms.VeryImportantStringHere; // cached now has the value.
    return View();
    }
}