我有一个.NET Core 2 WebAPI应用程序。在Startup类的ConfigureServices中,我添加一个带有services.AddDbContext <>的DbContext和一个带有services.AddScoped <,> ...
的存储库。dbcontext何时创建以及持续多长时间?
在WPF桌面环境中,我是在Using语句中创建dbcontext的,所以我一直都知道范围。但是现在,在Core 2 WebAPI中,dbcontext的生存期对我来说已经不那么明显了。而且,多个用户可以同时访问API,他们每个人都得到自己的dbcontext吗?
答案 0 :(得分:0)
默认情况下,在ASP.NET Core中,上下文是“作用域”添加的,这意味着大部分情况下实际上是 request 作用域。您的主应用程序仅运行一次(Startup
中的所有内容,等等)。对于每个请求,都会创建一个唯一的请求管道,其中涉及更新控制器之类的事物,然后将其放置在请求的末尾。对于请求范围的上下文,您的上下文也将在第一次需要注入请求管道时进行更新,并且将来在同一请求管道中使用at上下文的所有操作都将使用相同的上下文。在请求结束时,将对其进行处理。