【发布时间】:2022-02-05 03:02:38
【问题描述】:
根据Command Query Separation principle,命令应返回 void。
我正在使用MediatR 命令请求处理程序来创建一个实体,如下所示。那么如何取回创建的实体呢?
public class CreateCompanyCommand : IRequest
{
public string Name { get; set; } = default!;
}
public class CreateCompanyHandler : IRequestHandler<CreateCompanyCommand>
{
private readonly IRepository<Company> _repository;
public CreateCompanyHandler(IRepository<Company> repository)
{
_repository = repository;
}
public async Task<Unit> Handle(CreateCompanyCommand request, CancellationToken cancellationToken)
{
var newCompany = new Company(request.Name);
var createdItem = await _repository.AddAsync(newCompany);
return Unit.Value;
}
}
我看到了this question和its answer here,但我还是不清楚。
如何返回 createdItem? Unit.Value 应该是什么?我可以自己修改和返回自定义的东西而不是 Unit.Value 吗?
【问题讨论】:
标签: asp.net-core mediatr