如何在MVC App中保持存储库存活

时间:2014-11-02 18:43:59

标签: c# asp.net-mvc entity-framework repository-pattern

您好我正在寻找一种在整个应用程序生命周期内保持存储库初始化的方法。目前我正在初始化每个控制器上的每个存储库。所以它总是在每个新控制器上进入数据库,如果结果集很大,这会减慢应用程序的速度

    public Controller()
        : this(new someRepository()
    {
        ...........
    }

    public Controller(IRepository IRepository , )
    {
        ....
    }

我没有使用依赖注入,但是一些示例代码或对站点的指示会很有用。

谢谢

2 个答案:

答案 0 :(得分:2)

一个好的策略是使用缓存。看看System.Web.Caching.Cache。第一次获取数据时,您可以将其写入缓存并在连续读取时从那里检索(假设数据未更改)。

答案 1 :(得分:2)

您可以创建一个存储存储库实例的static变量。

public class SomeRepository
{
   private static SomeRepository _instance;
   public static SomeRepository Instance
   {
       get 
       {
           return _instance ?? (_instance = new SomeRepository());
       }
   }
}

并像这样使用它:

public Controller()
        : this(SomeRepository.Instance)
    {
        ...........
    }

    public Controller(IRepository IRepository , )
    {
        ....
    }