将 dbContext 抽象为单独的 class - Entity Framework 6

Abstracting a dbContext into a separate class - Entity Framework 6

我希望能够抽象化我的 EF6 上下文,以便创建一次并由多个 classes 使用。代码如下:

接口:

public interface IInterface<T>
{
    IEnumerable<T> ExecStoredProc(string x, DateTime date,
             int y, string  statistics );
}

上下文 class:

public class Context
{
    public readonly StatisticsEntities StatContext;

    public static StatisticsRepo(StatisticsEntities statContext)
    {
        StatContext = statContext;
        return StatContext;
    }
}

Class 调用上下文 class:

public class Class2: Iinterface<Class2Type>
{
    var returnContext = context.StatisticsEntities();

    public IEnumerable<Class2Type> ExecStoredProc(string x, DateTime date,
            int y, string  statistics )
           {
              return returnContext.ExecMethod_Select(x,date,y,statistics).AsEnumerable();
           }

}

以下是我的问题:

  1. 是否可以抽象上下文,如果可以,这是一个很好的做法。我最担心的是处理。

  2. 通常,StatContext 将是一个私有变量,但我不能 return。如何让 StatContext 保持私有?

谢谢

我采用了不同的方法并使用了 属性 注入:

public class Context
    {
        //Property Injection to be used for all repo classes
        private StatisticsEntities _statContext = new StatisticsEntities();
        public StatisticsEntities StatContext { get; set; }
    }

然后我在调用 class 中添加了一个 try catch finally 块来处理上下文。