加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:14:07 所属栏目:asp.Net 来源:网络整理
导读:我在我的存储库的每个方法中都使用了块.如果我想交叉引用方法,那么初始化另一个Datacontext似乎是违反最佳实践的.我做错了什么?如果我在类中声明一个Datacontext而不是在方法中使用块,我会不会失去处置能力? public IListsomething GetSomething(){ using
我在我的存储库的每个方法中都使用了块.如果我想交叉引用方法,那么初始化另一个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的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读