我是否应该显式地处理从单个表中读取的dbContext,什么都不会写入?

时间:2018-03-19 09:48:32

标签: c# entity-framework dbcontext

我创建了一个通过EF dbContext从单个表中读取的服务。

  • 基于给定的连接字符串
  • 在此服务中创建dbContext
  • dbContext是私有的
  • 该服务专门从该表中读取而从不写入
  • 没有其他上下文使用此表,尽管它们使用同一数据库中的其他表
  • 此表格不包含任何外键

问题:考虑到上述所有情况,我是否应该使用using声明处理此服务中的上下文?如果是,为什么?

我不想这样做,因为它会使测试变得复杂,但如果我必须这样做,我会做的。

1 个答案:

答案 0 :(得分:3)

始终尽可能晚地初始化上下文并尽快处理它。如果你不这样做,上下文将继续增长,并可能开始表现为内存泄漏,最终给你内存问题。

为此,请使用using语句;或者如果您使用DI框架,请使用在每个Web请求之后结束的生命周期。

另见:Memory leak when using Entity Framework

“它使测试变得更复杂”绝对没有理由不遵循最佳实践。也不确定你的意思。