Я пытаюсь реализовать шаблон единицы работы, передавая экземпляр единицы работы в мои хранилища.
Соответствующий код из Global.asax.
public class SiteModule : NinjectModule
{
public override void Load() {
Bind<IUnitOfWork>().To<SqlUnitOfWork>()
.InRequestScope()
.WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["Entities"].ConnectionString);
Bind<IProductRepository>().To<ProductRepository>();
Bind<ICategoryRepository>().To<CategoryRepository>();
}
}
Конструкторы репозитория:
public class ProductRepository {
IUnitOfWork unitOfWork;
public ProductRepository(IUnitOfWork unitOfWork) {
this.unitOfWork = unitOfWork;
}
}
public class CategoryRepository {
IUnitOfWork unitOfWork;
public CategoryRepository(IUnitOfWork unitOfWork) {
this.unitOfWork = unitOfWork;
}
}
Я хочу, чтобы максимум 1 экземпляр SqlUnitOfWork
создавался для запроса и передавался в мои репозитории (через их соответствующие конструкторы).
Достаточно ли метода InRequestScope()
для привязки IUnitOfWork
?Если нет, то как мне этого добиться?