首页 > 解决方案 > 带有实体框架 dbcontext 的 Singleton 好吗?

问题描述

我的问题太简单了,我有个想法DbContext是用一个实例来管理一个对象,所以这个想法是使用单例设计模式。

根据您的经验,单例是否适合与实体框架一起使用dbcontext以确保只dbcontext使用一个实例?

标签: c#entity-frameworksingletondbcontext

解决方案


单例是否适合与实体框架 dbcontext 一起使用以确保使用一个 dbcontext 实例?

这不仅是个坏主意,而且行不通。它不是线程安全的,并发使用时会产生异常。并且长期存在的 DbContext 会倾向于在其 Change Tracker 中积累大量对象,从而降低性能并浪费资源。

DbContext 的生命周期从创建实例开始,到释放实例结束。DbContext 实例旨在用于单个工作单元。这意味着 DbContext 实例的生命周期通常很短。

DbContext 生命周期、配置和初始化


推荐阅读