728x90
반응형
GraphQL은 single query에 multiple operation을 지원한다.
concurrency exception이 발생한다.
DbContext는 thread safe하지 않다. 스레드 간에 context를 공유하지 않는다.
단일 HTTP Request 내의 여러 작업을 해야 하는 경우, AddDbContextFactory를 사용한다.
context type을 직접 등록하는 대신, factory를 등록하면 새 인스턴스를 쉽게 만들 수 있다.
Program.cs
//builder.Services.AddDbContext<ApplicationDbContext>(option => option.UseSqlServer(
// builder.Configuration.GetConnectionString("DefaultConnection")
// ));
builder.Services.AddDbContextFactory<ApplicationDbContext>(option => option.UseSqlServer(
builder.Configuration.GetConnectionString("DefaultConnection")
));
Query.cs
public class Query
{
[UseDbContext(typeof(ApplicationDbContext))]
[UseProjection]
[UseFiltering]
[UseSorting]
public IQueryable<Book> GetBooks([ScopedService] ApplicationDbContext context)
=> context.Books;
}
728x90
반응형
'GraphQL(HotChocolate)' 카테고리의 다른 글
.NET 6] Hot Chocolate GraphQL : mutation(5) (0) | 2022.02.09 |
---|---|
GraphQL vs REST (0) | 2022.02.09 |
.NET 6] Hot Chocolate GraphQL : EF Core (3) (0) | 2022.02.08 |
.NET 6] Hot Chocolate GraphQL : query 실행 (2) (0) | 2022.02.08 |
.NET 6] Hot Chocolate GraphQL : server 설정 (1) (0) | 2022.02.07 |
댓글