每次在ASP.net MVC中运行网站时,如何在数据库中传递已存储的数据? 我有一个带方法的控制器,我希望每次运行应用程序时都要对已存储的数据执行。 还有什么方法可以改变这种存储的数据及时传递到控制器的方式。假设我希望每五分钟将这些存储的数据传递到控制器中的方法一次。
答案 0 :(得分:1)
您需要的是cache
单身人士。
e.g。
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();
}
}