如何使用MediatR返回創建的實體

根據命令查詢分離原則,命令應返回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;
  }
}

我在這里看到了這個問題及其答案,但我仍然不清楚。

如何返回createdItem?Unit.Value應該是什么?我能自己修改并返回一些定制的東西而不是Unit.Value嗎?

? 最佳回答:

如果您真的想要返回創建的值,可以更改請求/處理程序以返回它:

public class CreateCompanyCommand : IRequest<Company>
{
  public string Name { get; set; } = default!;
}


public class CreateCompanyHandler : IRequestHandler<CreateCompanyCommand, Company>
{
  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 newCompany;
  }
}

沒有什么能強迫你不這么做——命令不應該在純CQR中返回任何內容,但mediatr不會強迫你這么做。

另一種方法是在命令中創建id(并在調用者或命令的ctor中初始化id)

public class CreateCompanyCommand : IRequest<Company>
{
  public Guid Id {get; set;}
  public string Name { get; set; } = default!;
}

請致電mediatr詢問您的問題,然后查詢您剛剛創建的公司。

主站蜘蛛池模板: 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 中文人妻无码一区二区三区| 精品深夜AV无码一区二区老年| 精品视频一区二区三区四区| 国产福利一区二区三区在线观看 | 无码中文字幕乱码一区| 日本在线电影一区二区三区| 波多野结衣一区二区三区aV高清| 亚洲AV无码第一区二区三区| 亚洲AV无码国产精品永久一区 | 精品无码人妻一区二区三区品| 亚洲视频免费一区| 亚洲片国产一区一级在线观看| 亚洲一区二区三区电影| 福利一区二区三区视频午夜观看| 无码人妻精品一区二区三区夜夜嗨| 国产麻豆精品一区二区三区| 99精品国产一区二区三区| 亚洲AV成人精品一区二区三区| 日美欧韩一区二去三区| 亚洲天堂一区在线| 国产精华液一区二区区别大吗 | 中文字幕一区二区三区在线不卡| 日产精品久久久一区二区| 精品视频在线观看你懂的一区| 久久中文字幕无码一区二区| 国产AV午夜精品一区二区三区| 一区二区三区电影在线观看| 日本一道高清一区二区三区 | aⅴ一区二区三区无卡无码| 亚洲AV无码一区二区三区牛牛| 亚洲国产精品一区二区第一页| 一区二区三区中文字幕| 精品国产AⅤ一区二区三区4区| 国产一区二区三区免费在线观看| 成人h动漫精品一区二区无码| 色窝窝无码一区二区三区色欲| 午夜精品一区二区三区免费视频| 无码国产伦一区二区三区视频| 性无码一区二区三区在线观看| 日韩一区二区超清视频|