使用Ninject的ASP MVC实体框架绑定

时间:2012-06-22 10:22:43

标签: entity-framework ninject

我在我的ASP MVC 3项目中使用Ninject,我修改了global.asax文件(正常情况下),然后创建了一个类NinjectControllerFactory,如下所示:

public class NinjectControllerFactory : DefaultControllerFactory  
    {
        private IKernel ninjectKernel;  
        public NinjectControllerFactory()  
        {
            ninjectKernel = new StandardKernel();  
            AddBindings();  
        }    
        protected override IController GetControllerInstance(RequestContext requestContext,
        Type controllerType)  
        {
            return controllerType == null  
            ? null  
            : (IController)ninjectKernel.Get(controllerType);  
        }  
        private void AddBindings()  
        {
            // put additional bindings here
            ninjectKernel.Bind<IServiceName>().To<ConcreteClass>();
        }  
    }

这一切都很好。

现在我想将我的Entity框架上下文对象添加到绑定中,这样我就不必为每个服务创建它的新实例。

任何人都可以告诉你该怎么做吗?

我应该创建一个只定义实体框架上下文的新界面吗?

由于

1 个答案:

答案 0 :(得分:3)

您可以使用自我绑定

kernel.Bind<MyDbContext>().ToSelf();

P.S你还应该在nuget

上签出Ninject.MVC3 package