注册新的依赖项

Nit*_*ant 1 asp.net asp.net-mvc boilerplate aspnetboilerplate

我正在使用asp.net样板来创建新项目.

我已定义新服务如下:

public class Employee : Entity<int>
{
    public string FName { get; set; }
    public string LName { get; set; }
}

public interface IEmployeeAppService : IApplicationService
{
    Employee AddEmployee(Employee emp);
    List<Employee> GetAll();
}

public class EmployeeAppService : MyTestProjectAppServiceBase, IEmployeeAppService
{
    private IRepository<Employee, int> _employeeRepository;

    public EmployeeAppService(IRepository<Employee, int> repo)
    {
        _employeeRepository = repo;
    }

    public Employee AddEmployee(Employee emp)
    {
        return _employeeRepository.Insert(emp);
    }

    public List<Employee> GetAll()
    {
        return _employeeRepository.GetAllList();
    } 
}
Run Code Online (Sandbox Code Playgroud)

我想在HomeController中使用该服务:

public class HomeController : MyTestProjectControllerBase
{
    IEmployeeAppService service;

    public HomeController(IEmployeeAppService svc)
    {
        service = svc;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我得到以下错误:

无法创建组件"MyTestProject.Services.EmployeeAppService",因为它具有要满足的依赖性.

'MyTestProject.Services.EmployeeAppService'正在等待以下依赖项:
- 服务'Abp.Domain.Repositories.IRepository`2 [[MyTestProject.Domain.Employee,MyTestProject.Core,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null],[System.Int32,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'未注册.

如何注册EmployeeAppService依赖项HomeController

UPDATE

我尝试了以下代码

IocManager.Register(typeof(IRepository<Employee, int>),
                    typeof(EmployeeAppService),
                    Abp.Dependency.DependencyLifeStyle.Transient);
Run Code Online (Sandbox Code Playgroud)

但然后它显示此错误

已有一个具有该名称的组件.您想要修改现有组件吗?如果没有,请确保指定唯一名称.

Jac*_*man 7

这通常发生在您的DbContext中未指定您的实体(在本例中为Employee)时.

只需将以下属性添加到您的DbContext类中,您应该很高兴:

public virtual IDbSet<Employee> Employees { get; set; }