サービス層で 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 以外のエンティティが必要な場合に、このサービス クラスで使用できるようにするためです。ご存じのとおり、データを取得するために複数のテーブルを選択する必要がある複雑なクエリの場合。
しかし、それが悪い習慣になるかどうかはわかりません!!
どんな助けでも大歓迎です。ありがとう。