MediatR DI 1.0.1を使用したジミーのコースを受講しました。私はそのコースの例に基づいたプロジェクトを2.0.0にアップグレードしようとしていますが、アップグレードの手順が見つかりません。MediatR Dependency Injectionのアップグレード手順
ここに、コースの具体例があります。私はIAsyncRequestをIRequestに変更しましたが、正しいと思われます。残りのエラーはするためのものである:
public class EmployeeEditHandler : AsyncRequestHandler<EmployeeEditModel>
と
protected override async Task HandleCore(EmployeeEditModel message)
AsyncRequestHandlerに変更する必要がありますか? HandleCoreを変更する必要がありますか?
namespace EmployeeDirectory.ViewModels
{
using MediatR;
//Other using statements removed for this example
public class EmployeeEditQuery : IAsyncRequest<EmployeeEditModel>
{
public Guid Id { get; set; }
}
public class EmployeeEditModel : IAsyncRequest
{
public Guid Id { get; set; }
public string Name { get; set; }
}
public class EmployeeEditQueryHandler
: IAsyncRequestHandler<EmployeeEditQuery, EmployeeEditModel>
{
private readonly DirectoryContext _dbContext;
public EmployeeEditQueryHandler(DirectoryContext dbContext)
{
_dbContext = dbContext;
}
public async Task<EmployeeEditModel> Handle(EmployeeEditQuery message)
{
var model = await _dbContext
.Employees
.Where(e => e.Id == message.Id)
.ProjectTo<EmployeeEditModel>()
.SingleOrDefaultAsync();
return model;
}
}
public class EmployeeEditHandler : AsyncRequestHandler<EmployeeEditModel>
{
private readonly DirectoryContext _dbContext;
public EmployeeEditHandler(DirectoryContext dbContext)
{
_dbContext = dbContext;
}
protected override async Task HandleCore(EmployeeEditModel message)
{
var employee = await _dbContext.Employees
.SingleOrDefaultAsync(e => e.Id == message.Id);
Mapper.Map(message, employee);
}
}
}