我希望能够抽象我的EF6上下文,以便创建一次并由多个类使用。代码如下:
接口:
public interface IInterface<T>
{
IEnumerable<T> ExecStoredProc(string x, DateTime date,
int y, string statistics );
}
上下文类:
public class Context
{
public readonly StatisticsEntities StatContext;
public static StatisticsRepo(StatisticsEntities statContext)
{
StatContext = statContext;
return StatContext;
}
}
调用Context类的类:
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();
}
}
以下是我的问题:
是否可以抽象出上下文,如果可以,这是一个很好的做法。我最关心的是处置。
通常,StatContext是一个私有变量,但我无法返回。如何将StatContext保密?
谢谢
答案 0 :(得分:0)
我采用了不同的方法并使用了属性注入:
public class Context
{
//Property Injection to be used for all repo classes
private StatisticsEntities _statContext = new StatisticsEntities();
public StatisticsEntities StatContext { get; set; }
}
然后我在调用类中添加了一个try catch finally块来处理上下文。