Edition 0 Updated to asp. Net core 0


EF DbContext and IUnitOfWork instance lifetime in your IoC container



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə218/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   214   215   216   217   218   219   220   221   ...   288
NET-Microservices-Architecture-for-Containerized-NET-Applications

EF DbContext and IUnitOfWork instance lifetime in your IoC container 
The 
DbContext
object (exposed as an 
IUnitOfWork
object) should be shared among multiple 
repositories within the same HTTP request scope. For example, this is true when the operation being 
executed must deal with multiple aggregates, or simply because you are using multiple repository 
instances. It is also important to mention that the 
IUnitOfWork
interface is part of your domain layer
not an EF Core type. 
In order to do that, the instance of the 
DbContext
object has to have its service lifetime set to 
ServiceLifetime.Scoped. This is the default lifetime when registering a 
DbContext
with 
builder.Services.AddDbContext
in your IoC container from the 
Program.cs
file in your ASP.NET 
Core Web API project. The following code illustrates this. 


250 
CHAPTER 6 | Tackle Business Complexity in a Microservice with DDD and CQRS Patterns 
// Add framework services.
builder.
Services
.
AddMvc
(options => 

options.
Filters
.
Add
(
typeof
(HttpGlobalExceptionFilter)); 
}).
AddControllersAsServices
(); 
builder.
Services
.
AddEntityFrameworkSqlServer
() 
.
AddDbContext
(options => 

options.
UseSqlServer
(Configuration[
"ConnectionString"
], 
sqlOptions => 
sqlOptions.
MigrationsAssembly
(
typeof
(Startup).
GetTypeInfo
(). 
Assembly.
GetName
().
Name
)); 
}, 
ServiceLifetime.
Scoped
// Note that Scoped is the default choice
// in AddDbContext. It is shown here only for
// pedagogic purposes.
); 
The DbContext instantiation mode should not be configured as ServiceLifetime.Transient or 
ServiceLifetime.Singleton. 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   214   215   216   217   218   219   220   221   ...   288




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin