asp.net-mvc ninject telerik-open-access

asp.net mvc - Cómo manejar DBContext al usar Ninject



asp.net-mvc telerik-open-access (1)

Así es como haría tus enlaces de Ninject,

kernel.Bind<DBContext>().ToSelf().InRequestScope(); kernel.Bind<ContentService>().ToSelf().InRequestScope(); kernel.Bind<IContentRepository>().To<ContentRepository>().InRequestScope();

Este patrón debería funcionar bien en el ejemplo anterior con EF y Ninject.

Estoy tratando de usar Ninject y OpenAccess por primera vez. Por favor ayúdame con lo siguiente. Así es como se ve mi proyecto ...

public class ContentController : Controller { private ContentService contentSvc; public ContentController(ContentService contentSvc) { this.contentSvc = contentSvc; } }

La siguiente clase está debajo de una carpeta en mi aplicación web.

public class ContentService { private IContentRepository contentRepository; public ContentService(IContentRepository contentRepository) { this.contentRepository = contentRepository; } public void InsertContent(Content content) { contentRepository.InsertContent(content); } }

El siguiente repositorio pertenece a un conjunto separado.

public class ContentRepository : IContentRepository { DBContext db; public ContentRepository(DBContext _db) { db = _db; } public void InsertContent(Content content) { db.Add(content); } }

Así es como se ve el enlace de Ninject ..

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

Todo funciona bien si consigo una página a la vez. Estoy usando una herramienta simple ''XENU'' para obtener varias páginas simultáneamente. Esto es cuando obtengo errores con DBContext al buscar varias páginas a la vez.

No estoy seguro de si Ninject está dosificando el DBContext en cada SOLICITUD? Recibo diferentes errores, por ejemplo, ''Referencia de objeto no establecida en una instancia de un objeto'', O ''ExecuteReader requiere una conexión abierta y disponible. El estado actual de la conexión está abierto.

PD

Tengo ContentService bajo una carpeta en mi aplicación web MVC. ContentRepository es un conjunto separado. Agregaré la lógica de negocios en ContentService y usaré ''ContentRepository'' solo para las operaciones de CRUD. Además, avíseme si esta arquitectura está bien o si existe una mejor manera de crear servicios y repositorios.