使用静态DbContext有什么缺点

我是Visual Studio的新手。 我正在开发一个MVC Web项目,我正在使用静态DbContext 。 因为当用户登录时它不是一个简单的网页,他将使用该程序很长一段时间,我希望它快。 使用静态DbContext什么缺点?

由于DbContext不是线程安全的,如果您的应用程序具有异步操作,则可能使用您的DbContext有多个线程,这可能导致exception。

另一方面,创建新的DbContext实例并不意味着打开与DB的新连接。 Net Framework应使用已在Connection Pool打开的Connection Pool

如果您只使用一个DbContext实例并将其锁定以保证线程安全,那么您只有一个与DB的连接。 如果您的网站每秒有数百个请求,那么所有这些请求都必须排队才能使用唯一的连接。 在这种情况下,DbContext对象成为系统的性能瓶颈。

使用静态DbContext实例时,EF中的数据缓存存在大量问题。

因此,最好为每个请求创建一个新的DbContext实例 – 让框架为我们管理连接,不要担心它应该快速