將Dbcontext配置為瞬態

asp.net-core entity-framework-core

在ASP.NET Core / EntityFramework Core中,services.AddDbContext <>方法將指定的上下文添加為作用域服務。我的理解是,這是Microsoft建議的dbcontext生命週期管理。

然而,我們的工程師部門對此存在很多爭議,許多人認為需要盡快處理上下文。那麼,將dbcontext配置為Transient仍然保持通常使用的相同存儲庫模式(即將上下文直接注入存儲庫的構造函數)以及支持靈活的單元測試的最佳方法是什麼?

一般承認的答案

生命週期是AddDbContext<>()的參數。見例子:

services.AddDbContext<ApplicationDbContext>(options =>
         options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")), 
         ServiceLifetime.Transient);

這將把它添加到具有瞬態生命週期的服務集合中。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow