Asp.net 注册新的依赖项

Asp.net 注册新的依赖项,asp.net,asp.net-mvc,boilerplate,aspnetboilerplate,Asp.net,Asp.net Mvc,Boilerplate,Aspnetboilerplate,我正在使用创建新项目 我对新服务的定义如下: public class Employee : Entity<int> { public string FName { get; set; } public string LName { get; set; } } public interface IEmployeeAppService : IApplicationService { Employee AddEmployee(Employee emp);

我正在使用创建新项目

我对新服务的定义如下:

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();
    } 
}
当我运行应用程序时,出现以下错误:

无法创建组件“MyTestProject.Services.EmployeeAppService”,因为它需要满足依赖关系

“MyTestProject.Services.EmployeeAppService”正在等待以下依赖项:
-服务'Abp.Domain.Repositories.IRepository'2[[MyTestProject.Domain.Employee, MyTestProject.Core,版本=1.0.0.0,区域性=neutral, PublicKeyToken=null],[System.Int32,mscorlib,版本=4.0.0.0, 区域性=中性,PublicKeyToken=b77a5c561934e089]]”这不是 注册的

如何将
EmployeeAppService
依赖项注册到
HomeController

更新

我尝试了以下代码

IocManager.Register(typeof(IRepository<Employee, int>),
                    typeof(EmployeeAppService),
                    Abp.Dependency.DependencyLifeStyle.Transient);
IocManager.Register(typeof(IRepository),
类型(EmployeeAppService),
Abp.Dependency.DependencyLifeStyle.Transient);
但是它会显示这个错误

已存在具有该名称的组件。是否改为修改现有组件?如果没有,请确保指定唯一的名称


当您的实体(本例中为雇员)未在DbContext中指定时,通常会发生这种情况

只需将以下属性添加到DbContext类中,就可以了:

公共虚拟IDbSet雇员{get;set;}

当您的主体(本例中为员工)未在DbContext中指定时,通常会发生这种情况

只需将以下属性添加到DbContext类中,就可以了:

公共虚拟IDbSet雇员{get;set;}

您不需要手动注册应用程序服务。删除代码 IocManager.Register

当您从IApplicationService建立基础时,它会自动注册到DI


错误表示无法解析EmployeeAppService。所以正如Jacques Snyman所说,将Employee实体添加到DbContext。

您不需要手动注册应用程序服务。删除代码 IocManager.Register

当您从IApplicationService建立基础时,它会自动注册到DI



错误表示无法解析EmployeeAppService。正如Jacques Snyman所说,将Employee实体添加到DbContext。

您在哪里/如何注册依赖关系,或者您是否还没有让DI工作?没有让DI工作,这是我要注册的第一个服务您需要阅读文档:
IocManager.RegisterAssemblyConvention
自动注册依赖关系,我想知道为什么它不接受我的新服务。另外,你的控制器应该在构造函数中注入接口,而不是具体的类(更可能是你的问题)。你在哪里/如何注册依赖项,或者你还没有让DI工作吗?没有让DI工作,这是我想注册的第一个服务。你需要阅读文档:
IocManager.RegisterAssemblyByConvention
auto registers dependentials,我想知道为什么它不接受我的新服务。另外,你的控制器应该在构造函数中注入接口,而不是具体的类(更可能是你的问题)。IDBSet在哪里?。。。上面有同样的问题。它在EntityFramework程序集的System.Data.Entity命名空间中。谢谢,但我的项目是EFCore,还没有IDbSet。。。这就是让我困惑的地方。啊。。。对于EF Core,这应该是
public virtual DbSet Employees{get;set;}
。。。即使您在DbContextWhere是IDBSet?…中声明了您的实体,virtual关键字也很重要?。。。上面有同样的问题。它在EntityFramework程序集的System.Data.Entity命名空间中。谢谢,但我的项目是EFCore,还没有IDbSet。。。这就是让我困惑的地方。啊。。。对于EF Core,这应该是
public virtual DbSet Employees{get;set;}
。。。即使您在DbContext中声明了实体,virtual关键字也很重要
IocManager.Register(typeof(IRepository<Employee, int>),
                    typeof(EmployeeAppService),
                    Abp.Dependency.DependencyLifeStyle.Transient);