Jak obsługiwać DBContext podczas korzystania z Ninject

Próbuję użyć Ninject i OpenAccess po raz pierwszy. Proszę mi pomóc z następującymi. Oto jak wygląda mój projekt ...

public class ContentController : Controller
{
    private ContentService contentSvc;

    public ContentController(ContentService contentSvc)
    {
        this.contentSvc = contentSvc;
    }
}

Następująca klasa znajduje się w folderze w mojej aplikacji internetowej.

public class ContentService
{
    private IContentRepository contentRepository;

    public ContentService(IContentRepository contentRepository)
    {
        this.contentRepository = contentRepository;
    }

    public void InsertContent(Content content)
    {
         contentRepository.InsertContent(content);
    }
}

Następujące repozytorium należy do oddzielnego zespołu.

public class ContentRepository : IContentRepository
{
    DBContext db;
    public ContentRepository(DBContext _db)
    {
        db = _db;
    }

    public void InsertContent(Content content)
    {
             db.Add(content);
    }
}   

Oto jak wygląda oprawa Ninject.

kernel.Bind<ContentService>().To<ContentService>().InRequestScope();
kernel.Bind<IContentRepository>().To<ContentRepository>().InRequestScope().WithConstructorArgument("_db", new DBContext());

Wszystko działa dobrze, jeśli ściągam jedną stronę na raz. Używam prostego narzędzia „XENU” do pobierania wielu stron jednocześnie. To wtedy dostaję błędy z DBContext, pobierając wiele stron naraz.

Nie jestem pewien, czy Ninject rozpakowuje DBContext w każdym żądaniu? Dostaję różne błędy, np. „Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu.”, LUB „ExecuteReader wymaga otwartego i dostępnego połączenia. Aktualny stan połączenia jest otwarty.

P.S.

Mam ContentService w folderze w mojej aplikacji internetowej MVC. ContentRepository to osobny zespół. Dodam logikę biznesową w ContentService i użyję „ContentRepository” tylko do operacji CRUD. Daj mi znać, czy ta architektura jest w porządku, czy też istnieje lepszy sposób tworzenia usług i repozytoriów.

questionAnswers(1)

yourAnswerToTheQuestion