ASP.NET控制器+实体框架Context =线程安全吗?

Phi*_*enn 1 c# asp.net-mvc multithreading entity-framework

所有,

我正在编写看起来像的代码:

public class UserController : AuthenticatedController
{

    private MunicipalContext db = new MunicipalContext();

    // GET: Users/Edit/5
    public ActionResult Edit(int? id)
    {
        //Do stuff with db.Users
    }

    // Other action methods that do stuff with db.Users
}
Run Code Online (Sandbox Code Playgroud)

来自Java背景,这感觉像Servlets和实例字段,并开始在我的脑后引起嗡嗡的感觉.

我是否会遇到线程安全问题?

Fed*_*uma 5

每个控制器将根据请求创建一次,它们不是单例.线程之间不共享实例成员.

所以答案是否定的,你的代码没有线程问题,每次对你的一个动作的新请求被创建UserController为new UserController和new MunicipalContext.

附注:记住不再使用时Dispose()MunicipalContext实例.更多信息在这里.