每次网站在 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();
}
}
每次网站在 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();
}
}