asp.net mvcで作成されたWebアプリケーションがあり、Ninjectを使用してインターフェイスをバインドしています。
今のところ、私はこれを持っています:
// Db Context
kernel.Bind<DbContext>().To<DbEntities>().InRequestScope();
// Repositories - which are using instance of DbEntities
kernel.Bind<ICustomerRepository>().To<CustomerRepository>();
kernel.Bind<IProductRepository>().To<ProductRepository>();
// Services - which are using instances of Repositories
kernel.Bind<ICustomerService>().To<CustomerService>();
kernel.Bind<IProductService>().To<ProductService>();
同じWebリクエストで同じDbContextを使用したいので、RequestScopeのDbEntitiesにDbContextをバインドしています。その後、それを処分する必要があります。
しかし、他のバインディングはどうあるべきですか?デフォルトではどうですか?
たとえば、 (リクエストごとに1つ)IProductRepository
のインスタンスがある場合、これも?DbContext
InRequestScope()
IProductService
のインスタンスがありますIProductRepository
バインディングはどのようにすべきですか?Webアプリケーションに適していますか?(そして私はサーバーのメモリを過負荷にしません)