サービスレイヤでDbContextを公開するのは悪い習慣ですか?例についてはAsp.net mvc EF4.1 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以外のエンティティが必要な場合は、このサービスクラスで使用できるように、私はここに公開しました。あなたが知っている場合は、データをフェッチするために複数のテーブルを選択する必要がある複雑なクエリの場合。
しかし、それが悪い練習をするかどうかはわかりません!
何か助けていただければ幸いです。ありがとう。
ありがとうございます。私はあなたが言及した両方のアプローチについて知っていた。しかし、個人的には私は第2のアプローチが嫌いです。真実を伝えるようにします。私はContextオブジェクトを使うのが好きです。私はそれで安全だと感じています。:D もう一つ、このサービスは、これらの2つのリポジトリでは回避策となるかもしれません。しかし、将来、このサービスはより多くのリポジトリを必要とするかもしれません。私は再びコンストラクタにそれらを追加する必要があります。 – nznoor
あなたの最初のappraochについて私はそれが良いのが好きです。これよりも理解しやすくなるオープンソースサンプルアプリをご存知ですか? – nznoor
@ Nazmoon申し訳ありません、私はサンプルを思い出すことができません。構造はあなたのドメインに依存します – Eranga