asp.net-mvc - 我应该如何缓存在 ASP.NET MVC 中构建的复杂对象?

标签 asp.net-mvc caching

我正在构建一个网站,允许用户创建一个由多项任务组成的日程表。 计划和任务信息存储在数据库中。

创建日程时,用户可以在最终保存日程之前添加、编辑或删除任意数量的任务。这些更改会保存到数据库中,以便用户可以在以后恢复编辑(如果他们的 session 意外结束或他们被打断)。

每次请求更新任务时,网站都会从我的数据访问层调用适当的方法,然后从数据库中重新请求整个计划数据对象以显示给用户。

当只编辑一个任务时,这似乎有点矫枉过正。我想在 HttpContext.Session 中缓存计划对象及其任务列表,并且只更新正在更改的单个任务(或更改时的计划对象)。

如果我只在确认编辑操作成功时才​​更新我的缓存对象,那么我的两个版本不同步会有什么危险吗?

最佳答案

如果 session 被重置,这可能是由更新 web.config、修改 dll 甚至 IIS 自动回收应用程序池等原因引起的,都会导致您的 session 被清除。如果您有多个 Web 服务器,您将不得不担心在多个 Web 服务器和数据库中的服务器之间同步 session 。就个人而言,我尽量不在 session 中存储任何可以避免的东西。

关于asp.net-mvc - 我应该如何缓存在 ASP.NET MVC 中构建的复杂对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14947388/

相关文章:

asp.net-mvc - MVC 6 404 未找到

c# - 如何在 ASP.Net MVC 中将 RDLC 报告与 ReportViewer 控件一起使用?

c# - 更改 ResourceManager(使其可更新)

asp.net - ASP.NET 中的自定义缓存

c# - 将 Ruby 转换为 C#

javascript - 如何在不添加随机数的情况下阻止css缓存?

c# - 如何在带参数的 MVC4 中使用 Url.Content()?

C# Mvc ajax baseUrl

asp.net - Entity Framework 和 Microsoft SQL Server 的区别

caching - Google 缓存和多语言域名