MVC、DbContext 和多线程

Edi*_*Edi 5 asp.net-mvc entity-framework thread-safety dbcontext

关于这些主题有很多问题,每个人都有自己的看法。也许有人可以就以下问题给我一个很好的答案。

我有一个 Asp.NET MVC Web 服务,它使用 EntityFramework 来访问数据库。有一个控制器,每次用户向 Web 服务发出请求时都会创建一个控制器实例。每个请求都很快。它只是从 DB 获取一些数据,更改它然后保存它。

当然,问题是如何维护 DbContext(因为它不是线程安全的)?在控制器的 ctor 上,我创建了一个 DbContext 实例。在控制器的 Dispose() 上,我处理了 DbContext。

我在一些帖子中看到,为每个请求创建一个实例并不是一个好习惯。不是吗?

谢谢,伊迪。

Dav*_*sky 4

DbContext 设计为随每个请求进行实例化。它实现了 IDisposable,并且实例化是一种低成本操作。数据库的连接池是在内部处理的。

更多信息:

实体框架和连接池