gpt4 book ai didi

c# - ASP.NET MVC 4 具有一个域模型用于多个应用程序和缓存

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:47 25 4
gpt4 key购买 nike

我正在将 ASP.Net Web Forms 应用程序转换为 MVC 4。这些应用程序显示常见的项目,并且可以对需要显示的大多数项目使用一个域模型。应用程序只显示数据,不修改数据。

目前,当用户访问页面时,数据是从 Oracle 数据库中检索的。该页面每 30 秒使用更新面板更新一次。因此,如果多个用户打开他们的页面(这很常见),每个用户都会访问数据库大约 10 次。每 30 秒一次。

数据库数据每 3 分钟更新一次。

我想做的是每 30 秒更新一次领域模型,然后应用程序从模型中获取数据。因此,每次发出页面请求时,都会从模型中获取数据。由于应用程序的所有数据都是从同一个域模型中检索的,因此它们都是相同的。这也应该减少数据库被访问的次数,并有望加快页面重新加载(和 Ajax 调用)。

所以,- 如果是第一次使用域模型,请从数据库中填充它。- 如果小于或等于 30 秒,应用程序使用域模型- 如果超过 30 秒,模型会从数据库中重新填充,应用程序会从模型中获取数据。

是否可以让这些多个应用程序使用一个领域模型?而且,如果可以以某种方式缓存域模型,该怎么做?

提前致谢。

最佳答案

您可以在 Controller 中缓存数据库调用的结果。

public ActionResult MyController()
{
var cache = HttpContext.Cache;
var model = cache["key"];
if (model == null) {
model = GetData();
cache.Insert(
"key",
model,
null,
DateTime.Now.AddSeconds(30),
System.Web.Caching.Cache.NoSlidingExpiration);
}

return View(model);
}

或者你通过添加 OutputCache 来缓存整个 View 属性给你的 Controller 。

[OutputCache(Duration = 30, VaryByParam = "none")]
public ActionResult MyController()
{
var model = GetData();
return View(model);
}

关于c# - ASP.NET MVC 4 具有一个域模型用于多个应用程序和缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com