我在我的存储库的每个方法中都使用了块.如果我想交叉引用方法,那么初始化另一个Datacontext似乎是违反最佳实践的.我做错了什么?如果我在类中声明一个Datacontext而不是在方法中使用块
public IList<something> GetSomething() { using (DB db=new DB()) { ...GetListofSomethingElse(id) } } public IList<somethingelse> GetListofSomethingElse(int id) { using (DB db=new DB()) { ... return IList } }如果不使用using语句,仍可以显式处理.即使您不处理数据上下文,交叉引用这些方法仍将创建新的数据上下文.根据您的使用情况,这可能是也可能不是好事.考虑数据上下文的状态管理方面,以及是否要将方法彼此隔离.如果要始终避免创建新上下文,请使用将上下文作为参数的版本重载方法.
注意you don’t usually need to dispose of a data context,虽然我倾向于处理任何实现IDisposable的东西.