当前位置 : 主页 > 网络编程 > ASP >

asp.net-mvc – 在存储库中使用Blocks有什么问题?

来源:互联网 收集:自由互联 发布时间:2021-06-24
我在我的存储库的每个方法中都使用了块.如果我想交叉引用方法,那么初始化另一个Datacontext似乎是违反最佳实践的.我做错了什么?如果我在类中声明一个Datacontext而不是在方法中使用块
我在我的存储库的每个方法中都使用了块.如果我想交叉引用方法,那么初始化另一个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的东西.

网友评论