Как зарегистрировать шаблон общего репозитория в классе запуска в функции конфигурации службы?
Я пытаюсь зарегистрировать шаблон репозитория в функции настройки сервиса на startup.cs, как показано ниже, но я получаю ошибку
InvalidOperationException: невозможно разрешить службу для типа 'TabDataAccess.Repositories.RepositoryTab`1 [TabDataAccess.Dto.Employee]' при попытке активировать 'WebTabCore.Controllers.EmployeeController'.
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped(typeof(IrepositoryTab<>), typeof(RepositoryTab<>));
services.AddDbContext<TabDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
Детали кода
public class Employee
{
public int EmployeeId { get; set; }
public string EmployeeName { get; set; }
}
public class TabDbContext : DbContext
{
public TabDbContext(DbContextOptions<TabDbContext> options)
: base(options)
{ }
public DbSet<Employee> Employees { get; set; }
}
public class RepositoryTab : IrepositoryTab where T : class
{
protected TabDbContext db { get; set; }
private DbSet dbSet;
public RepositoryTab(TabDbContext Tabdb)
{
db = Tabdb;
dbSet = db.Set();
}
public IEnumerable GetAll()
{
return dbSet.ToList();
}
}
public interface IrepositoryTab where T : class
{
IEnumerable GetAll();
}
On EmployeeController
открытый класс EmployeeController: контроллер
{
private readonly IrepositoryTab<Employee> _repository;
public EmployeeController(RepositoryTab<Employee> emp)
{
this._repository = emp;
}
public IActionResult Index()
{
var employees = _repository.GetAll();
return View(employees);
}
}