全部,

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

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
}

来自Java背景,感觉就像Servlet和实例字段,并且开始在我的脑海中引发这种嗡嗡声。

我会遇到线程安全问题吗?

最佳答案

每个 Controller 将为每个请求创建一次,它们不是单例。线程之间没有共享实例成员。

因此,答案是否定的,代码没有线程问题,每次对UserController的操作提出新请求时,都会创建一个新的UserController和一个新的MunicipalContext

旁注:切记在不再使用Dispose()实例时对其进行MunicipalContext编码。更多信息here

10-07 23:56