Как обрабатывать 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. Также, пожалуйста, дайте мне знать, если эта архитектура в порядке или есть лучший способ создания сервисов и репозиториев.