✅ DbContext lock up application
Controller
Handler
I tried to put debug points and it freezes at line in Controller
[ApiController]
[Route("api/v1/example")]
public class ExampleController(ISender sender) : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromBody] ExampleRequest request)
{
var command = new SendExampleMessageCommand(request.Message);
Result<ExampleMessageResponse> result = await sender.Send(command);
return result.Match(
value => Ok(value),
ActionResults.Problem
);
}
}[ApiController]
[Route("api/v1/example")]
public class ExampleController(ISender sender) : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromBody] ExampleRequest request)
{
var command = new SendExampleMessageCommand(request.Message);
Result<ExampleMessageResponse> result = await sender.Send(command);
return result.Match(
value => Ok(value),
ActionResults.Problem
);
}
}Handler
internal sealed class
SendExampleMessageCommandHandler(IApplicationDbContext dbContext, IDateTimeProvider dateTimeProvider)
: ICommandHandler<SendExampleMessageCommand, ExampleMessageResponse>
{
public async Task<Result<ExampleMessageResponse>> Handle(SendExampleMessageCommand request,
CancellationToken cancellationToken)
{
var example = Domain.Example.Example.Create(Guid.NewGuid(), request.Message, dateTimeProvider.UtcNow);
dbContext.Examples.Add(example);
await dbContext.SaveChangesAsync(cancellationToken);
return Result.Success(new ExampleMessageResponse(example.Id, example.Message, example.CreatedAtUtc));
}
}internal sealed class
SendExampleMessageCommandHandler(IApplicationDbContext dbContext, IDateTimeProvider dateTimeProvider)
: ICommandHandler<SendExampleMessageCommand, ExampleMessageResponse>
{
public async Task<Result<ExampleMessageResponse>> Handle(SendExampleMessageCommand request,
CancellationToken cancellationToken)
{
var example = Domain.Example.Example.Create(Guid.NewGuid(), request.Message, dateTimeProvider.UtcNow);
dbContext.Examples.Add(example);
await dbContext.SaveChangesAsync(cancellationToken);
return Result.Success(new ExampleMessageResponse(example.Id, example.Message, example.CreatedAtUtc));
}
}I tried to put debug points and it freezes at line in Controller
Result<ExampleMessageResponse> result = await sender.Send(command); Result<ExampleMessageResponse> result = await sender.Send(command);