【发布时间】:2020-12-31 08:15:33
【问题描述】:
我正在构建一个 WarehouseApi,但是当我尝试注入我的服务时,它给了我一个错误(CS0119)
public static IServiceCollection AddServices(this IServiceCollection services)
{
services.AddScoped(typeof(IRepository<>), typeof(Repository<>));
services.AddScoped(IEmployeeRepository, EmployeeRepository); //CS0119
return services;
}
错误描述:EmployeeRepository' 是一种类型,在给定的上下文中无效,并且 IEmployeeRepository' 是一种类型,在给定的上下文中无效
这里是 IEmployeeRepository 和 EmployeeRepository:
public interface IEmployeeRepository : IRepository<Employee>
{
Employee GetFirstOrDefaultByFirstName(string firstNameToFind);
Employee GetFirstOrDefaultByLastName(string lastNameToFind);
Employee GetFirstOrDefaultbByAge(int ageToFind);
Employee GetByEmail(string emailToFind);
Employee GetByAddress(string addressToFind);
Employee GetByPhoneNumber(string phoneNumberToFind);
}
public class EmployeeRepository : Repository<Employee>, IEmployeeRepository
{
public EmployeeRepository(WareHouseDBContext empContext) : base(empContext) { }
public Employee GetByAddress(string addressToFind)
{
return context.Set<Employee>().FirstOrDefault(x => x.Address == addressToFind);
}
public Employee GetByEmail(string emailToFind)
{
return context.Set<Employee>().FirstOrDefault(x => x.Email == emailToFind);
}
public Employee GetByPhoneNumber(string phoneNumberToFind)
{
return context.Set<Employee>().FirstOrDefault(x => x.PhoneNumber == phoneNumberToFind);
}
public Employee GetFirstOrDefaultbByAge(int ageToFind)
{
return context.Set<Employee>().FirstOrDefault(x => x.Age == ageToFind);
}
public Employee GetFirstOrDefaultByFirstName(string firstNameToFind)
{
return context.Set<Employee>().FirstOrDefault(x => x.FirstName == firstNameToFind);
}
public Employee GetFirstOrDefaultByLastName(string lastNameToFind)
{
return context.Set<Employee>().FirstOrDefault(x => x.LastName == lastNameToFind);
}
}
我是 API、依赖注入等方面的新手,所以这可能很容易解决
【问题讨论】:
标签: c# asp.net asp.net-web-api repository-pattern