在服务层中公开 DbContext 是一种不好的做法吗?
例如:
private readonly IRepository<SkillLevels> _repository;
private readonly IDatabaseFactory _databaseFactory;
private readonly IUnitOfWork _unitOfWork;
public SkillLevelService(IRepository<SkillLevels> repository, IDatabaseFactory databaseFactory, IUnitOfWork unitOfWork)
{
_repository = repository;
_databaseFactory = databaseFactory;
_unitOfWork = unitOfWork;
}
public void InsertSkillLevel(SkillLevels entity)
{
_repository.Insert(entity);
_unitOfWork.Commit();
}
在这里,IDatabaseFactory 可以返回我的 DbContext 对象。我在这里公开它是因为如果我需要 SkillLevels 以外的其他实体,以便我可以在这个服务类中使用它们。如果您知道,对于需要选择多个表来获取数据的复杂查询。
但我不确定这是否是一个不好的做法!
任何帮助表示赞赏。谢谢。