相关疑难解决方法(0)

如何在MVC应用程序中缓存数据

我在MVC应用程序中阅读了大量有关页面缓存和部分页面缓存的信息.但是,我想知道如何缓存数据.

在我的场景中,我将使用LINQ to Entities(实体框架).在第一次调用GetNames(或任何方法)时,我想从数据库中获取数据.我想将结果保存在缓存中,并在第二次调用时使用缓存版本(如果存在).

任何人都可以展示一个如何工作的例子,应该在哪里实现(模型?)以及它是否可行.

我已经在传统的ASP.NET应用程序中看到了这一点,通常用于非常静态的数据.

database asp.net-mvc caching

244
推荐指数
6
解决办法
20万
查看次数

我应该如何在C#中实现我的存储库(DDD)来处理同一聚合根的多个调用

我的项目中的哪个类应该负责跟踪已经创建了哪些聚合根,以便不为同一个实体创建两个实例.我的存储库应该保留它创建的所有聚合的列表吗?如果是,我该怎么做?我是否使用单一的存储库(听起来不对我)?另一种选择是封装这个"缓存"在其他地方是其他类吗?这个类看起来会是什么样的,它适合什么样的模式?

我没有使用O/R映射器,所以如果有一种处理它的技术,我需要知道它是如何做到的(如它使用的模式)能够使用它

谢谢!

c# domain-driven-design aggregate repository ddd-repositories

6
推荐指数
1
解决办法
1561
查看次数

ASP.Net MVC数据库驱动的菜单,带缓存

我正在尝试为我的网站创建一个菜单.它需要满足以下要求

  • 它必须是数据库驱动的,从DB中提取数据以构建菜单结构
  • 需要缓存从数据库中提取的数据 - 我不想为每个页面请求命中数据库

目前,我有一个简单的示例运行,但我不知道如何集成缓存.我想我可能需要在整个工作方式上进行修改.这里是:

我有一个ProductMenuAttribute,它从数据库中提取数据,并将其存储在ViewData中:

public class ProductMenuAttribute: FilterAttribute, IActionFilter
{
    #region IActionFilter Members

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        if (filterContext != null)
        {
            var context = filterContext.Result as ViewResult;
            if (context != null)
            {
                ProductsRepository repository = new ProductsRepository(Properties.Settings.Default.SqlConnectionString);

                context.ViewData.Add("ProductsList", repository.GetAllProductRanges());
            }
        }
    }

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {

    }

    #endregion
}
Run Code Online (Sandbox Code Playgroud)

在我的Site.master中,我从ViewData中提取数据并使用它来呈现我的菜单.这是我的无序菜单列表中的一个小片段,它使用CSS进行样式设置.这是代码:

            <li>
                <%= Html.ActionLink("Products", "Index", "Products")%>

                <%  IQueryable<ProductRange> productRanges = ViewData["ProductsList"] as IQueryable<ProductRange>; %>

                    <% if (productRanges != null) …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc caching menu database-driven

5
推荐指数
1
解决办法
6935
查看次数