问题描述
我正在将所有业务逻辑代码从.net MVC4项目中的控制器移至业务层类。因此,我需要从业务层访问数据访问层类。文件结构是这样的。
控制器
private readonly ICandidateRepository _candidateRepository;
private readonly IJobApplyService _jobApplyService;
public CandidateController(ICandidateRepository candidateRepository,IJobApplyService jobApplyService
{
_candidateRepository = candidateRepository;
_jobApplyService = jobApplyService;
}
业务层
private readonly ICandidateRepository _candidateRepository;
public JobApplyService(ICandidateRepository candidateRepository)
{
_candidateRepository= candidateRepository;
}
数据访问类
CandidateRepository
我可以通过使用Ninject DI来实现。但是问题出在我的控制器中,为每个HTTP请求创建了CandidateRepository数据访问类的2个实例。
如何预防?
还有其他好的方法吗?
解决方法
您需要更改接口声明中的代码
private readonly ICandidateRepository _candidateRepository;
public JobApplyService(CandidateRepository candidateRepository)
{
_candidateRepository= candidateRepository;
}
位置控制器和业务层
“候选人候选库候选人”