我真的要为使用ninject和NHibernate的模型中的每个类添加这一行吗?



我在ASP中使用NHibernate和ninject。Net MVC,使用此页作为指导。我觉得很奇怪的一件事是,在这段代码中(页面的一半)

public class RepositoryModule : NinjectModule
{
     public override void Load()
     {
        const string connectionString = @"Server=localhost; Port=3306; Database=trucktracker; Uid=root; Pwd='your_own_password';";
        NHibernateHelper helper = new NHibernateHelper(connectionString);
        Bind<ISessionFactory>().ToConstant(helper.SessionFactory).InSingletonScope();
        Bind<IUnitOfWork>().To<UnitOfWork>().InRequestScope();
        Bind<ISession>().ToProvider(new SessionProvider()).InRequestScope();
        Bind<IIntKeyedRepository<Truck>>().To<Repository<Truck>>().InRequestScope();
    }
}

我认为你每个型号都需要这一行很奇怪:

Bind<IIntKeyedRepository<Truck>>().To<Repository<Truck>>().InRequestScope();

如果我有100个不同的表(因此模型),我真的需要添加这一行在每个类,我有吗?有没有更好的方法,我可以只声明这一次,并使用继承来传递类型在我的控制器?

使用Open泛型支持:-

Bind(typeof(IIntKeyedRepository<>)).To(typeof(Repository<>)).InRequestScope();