Как обрабатывать DBContext при использовании Ninject

Я пытаюсь использовать Ninject и OpenAccess в первый раз. Пожалуйста, помогите мне со следующим. Вот как выглядит мой проект...

public class ContentController : Controller
{
    private ContentService contentSvc;

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

Следующий класс находится в папке в моем веб-приложении.

public class ContentService
{
    private IContentRepository contentRepository;

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

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

Следующий репозиторий принадлежит отдельной сборке.

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

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

Вот как выглядит привязка Ninject..

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

Все работает нормально, если я получаю одну страницу за раз. Я использую простой инструмент «XENU» для одновременной загрузки нескольких страниц. Это когда я получаю ошибки с DBContext, выбирая несколько страниц за раз.

Я не уверен, что Ninject дозирует DBContext в каждом ЗАПРОСЕ?? Я получаю разные ошибки, например. «Ссылка на объект не указывает на экземпляр объекта.», ИЛИ «ExecuteReader требует открытого и доступного подключения. Текущее состояние соединения открыто.

P.S.

У меня есть ContentService в папке в моем веб-приложении MVC. ContentRepository — это отдельная сборка. Я буду добавлять бизнес-логику в ContentService и использовать ContentRepository только для операций CRUD. Кроме того, пожалуйста, дайте мне знать, подходит ли эта архитектура или есть ли лучший способ создания сервисов и репозиториев.

22
задан tereško 13 August 2012 в 01:19
поделиться