2011-08-06 7 views
5

ASP.Net MVCでNHibernateとninjectを使用しています。using this page as a guideです。ninjectとNHibernateを使って、私のモデルの各クラスにこの行を実際に追加しますか?

​​

私が持っている場合:私は奇妙だと思うことの一つは、このコードで

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(); 
    } 
} 

(途中ページダウン)私はあなたがモデルごとにこのラインを持っている必要があること、それは奇妙だと思うということです100種類のテーブル(それゆえモデル)は、私が持っているすべてのクラスにこのラインを追加する必要がありますか?私はこれを一度宣言して継承を使用して、自分のコントローラーのTypeを渡すより良い方法はありませんか?

答えて

6

オープンジェネリックのサポートを使用します。 -

Bind(typeof(IIntKeyedRepository<>)).To(typeof(Repository<>)).InRequestScope(); 
関連する問題