使用静态DbContext有什么缺点

时间:2017-11-18 12:39:16

标签: c# asp.net-mvc visual-studio

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

的缺点是什么?

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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