ich Repository, Arbeitseinheit und Dependency Injection Muster in meiner Architektur Meine Ebenen:Repository Pattern UOW Dependency Injection Ninject
Kern
Datalayer
BusinessLayer
ServiceLayer
In meiner Struktur, in der Einheit der Arbeitsklasse, stimmt etwas nicht wie oben
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();
}
}
hier möchte ich DataAccessLayers wie _kullaniciDAL
viel injizieren gesucht und ich sah einige Beispiele für die Erzeugung Repository genericly bu Ich möchte nicht von Unternehmen direkt auf die Repository-Instanz zugreifen zu können, möchte ich für den Zugriff Hier werden die Instanzen meiner KullaniciDal Klasse ist der Code von KullaniciDal
public interface IKullaniciDal : IRepositoryEntityFramework<Kullanici>
{
}
public class KullaniciDal : RepositoryEntityFramework<Kullanici>, IKullaniciDal
{
public KullaniciDal(IDataContext dbContextBase) : base(dbContextBase)
{
}
}
ich möchte einige von ihnen einige zusätzliche Funktionen zur Datenzugriffsschicht in speziellen schreiben und die Instanzen verwenden möchten als ein Teil der Einheit der Arbeitsklasse
Wie kann ich Dal Klassen injizieren? Seien Sie vorsichtig, dass ich Context-Objekt zu jeder Klasse dal
Ich habe versucht, wie Sie angeboten, aber ich habe ein Problem, dass die Kontextinstanz in Arbeitseinheit und die Instanz in Dal ist nicht das Gleiche. Ich benutze ninject Bind(). Zu (). InRequestScope(); Wo mache ich mich falsch –
@OkanSARICA Das muss ein Problem mit dem Scoping in Ihrer Ninjects-Konfiguration sein, bitte posten Sie diesen Code auch. – Brook
Ich benutzte Ninject.Web.Common nugget Paket, ich deinstallierte es und installierte Ninject.Mvc3 und das Problem gelöst, interessant –