У вас ProductRepository зарегистрирован как IRepository<Product>.
UnitOfWork зависит от ProductRepository, который не зарегистрирован в IoC
Чтобы у вас всё заработало замените строку
readonly DataContext _context;
public ProductRepository Products { get; }
public UnitOfWork(DataContext Context,
ProductRepository Products)
{
this._context = Context;
this.Products = Products;
}
на
readonly DataContext _context;
public IRepository<Product> Products { get; }
public UnitOfWork(DataContext context,
IRepository<Product> products) //Самое важное
{
this._context = context;
this.Products = products;
}
Но вообще UoW и Repository тут лишние, тк EF и так сам по себе реализует оба паттерна.
Отвязаться от EF таким образом вы всё равно не сможете