我有一个.NET Core 2 WebAPI应用程序 . 在Startup类的ConfigureServices中,我添加了一个带有services.AddDbContext <>的DbContext和一个带有services.AddScoped <,>的存储库...
When is the dbcontext created and how long does it last?
我的WPF桌面时代我在Using语句中创建了dbcontext,所以,我总是知道范围 . 但是现在dbcontext的生命周期在Core 2 WebAPI中对我来说有点不太明显 . 并且,多个用户可以同时访问API,每个用户都可以获得自己的dbcontext吗?
1 回答
默认情况下,在ASP.NET核心术语中添加了上下文"scoped",这意味着大部分都是请求范围的 . 您的主应用程序只运行一次(
Startup
中的所有内容等) . 对于每个请求,都会创建一个唯一的请求管道,其中包括新建控制器之类的东西,然后在请求结束时将其处理掉 . 使用请求范围的上下文,您的上下文也将在需要第一次注入请求管道时被新建,并且在同一请求管道中的所有将来使用at上下文将使用相同的上下文 . 在请求结束时,它将被处置 .