加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 我是否真的使用ninject和NHibernate为我的模型中

发布时间:2020-12-16 07:03:51 所属栏目:asp.Net 来源:网络整理
导读:我在ASP.Net MVC,using this page as a guide中使用NHibernate和ninject.我认为有一点奇怪的是,在这段代码中(在页面的一半) public class RepositoryModule : NinjectModule{ public override void Load() { const string connectionString = @"Server=local
我在ASP.Net MVC,using this page as a guide中使用NHibernate和ninject.我认为有一点奇怪的是,在这段代码中(在页面的一半)

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个不同的表(以及模型),我真的需要为我拥有的每个类添加这一行吗?有没有更好的方法我只能声明一次并使用继承来传入我的控制器中的Type?

解决方法

使用Open Generics支持: –

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读