私は私のアーキテクチャで マイティアリポジトリ、仕事と依存性注入パターンの単位を使用します。リポジトリパターン部Ninject
コア
DataLayer
BusinessLayer
ServiceLayer
を私の構造には何か問題があります。作業単位の単位
public class UnitOfWork:IUnitOfWork
{
private readonly IDataContext _context;
private IKullaniciDal _kullaniciDal;
private IKategoriDal _kategoriDal;
private IUrunDal _urunDal;
public UnitOfWork(IDataContext context)
{
_context = context;
}
public IKategoriDal KategoriDal => _kategoriDal ?? (_kategoriDal = new KategoriDal(_context));
public IKullaniciDal KullaniciDal => _kullaniciDal ?? (_kullaniciDal = new KullaniciDal(_context));
public IUrunDal UrunDal => _urunDal ?? (_urunDal = new UrunDal(_context));
public void SaveChanges()
{
_context.SaveChanges();
}
}
ここ
上記のように、私は_kullaniciDAL
ようDataAccessLayersを注入したい多くのことを検索し、私はビジネスから直接リポジトリインスタンスにアクセスしたいいけないリポジトリ総称的にBUを生成するためのいくつかの例を見て、私がアクセスしたいですここに私のKullaniciDalクラス のインスタンスは、私はそれらのいくつかの特殊なデータアクセス層にいくつかの余分な機能を書きたいととしてインスタンスを使用したいKullaniciDal
public interface IKullaniciDal : IRepositoryEntityFramework<Kullanici>
{
}
public class KullaniciDal : RepositoryEntityFramework<Kullanici>, IKullaniciDal
{
public KullaniciDal(IDataContext dbContextBase) : base(dbContextBase)
{
}
}
のコードです作業単位クラスの一部
Dalクラスはどのように注入できますか? コンテキストオブジェクトをすべてのdalクラスに渡すように注意してください。
私はあなたが提供したように試みましたが、仕事単位のコンテキストインスタンスとdalのインスタンスが同じではないという問題があります。私はninject Bind()を使用します。()。InRequestScope();どこが間違っているのですか? –
@OkanSARICAこれは、あなたの設定にスコープの問題があります。そのコードも投稿してください。 – Brook
私はNinject.Web.Common Nugetパッケージを使用していました。これをアンインストールしてNinject.Mvc3をインストールし、面白い問題を解決しました。 –