我创建了一个通过EF dbContext
从单个表读取的服务。
dbContext
基于给定的连接字符串在此服务中创建dbContext
是私人
的- 服务以独占方式读取此表,从不写入此表
- 没有其他上下文使用此表,尽管它们使用同一数据库中的其他表
- 此表不包含任何外键
问:牢记上述所有内容,我是否应该使用 using
语句来处置此服务中的上下文?如果是,为什么?
因为它使测试变得非常复杂,但如果必须这样做,那么我一定会这样做。
始终尽可能
晚地初始化上下文并尽快释放它。如果不这样做,上下文将继续增长,并可能开始表现得像内存泄漏,最终给您带来内存问题。
为此,请使用using
语句;或者,如果使用 DI 框架,请使用在每个 Web 请求或类似内容之后结束的生存期。
另请参阅:使用实体框架时的内存泄漏
"它使测试更加复杂"绝对没有理由不遵循最佳实践。也不知道你的意思。