Соответствующие привязки недоступны, и тип не является самосвязываемым в Ninject

Я использую Ninjec, Ninject.Web.MVC и Ninject.Web.Common

Когда я запускаю свое приложение MVC, я получаю эту ошибку привязки:

Что я не прав в своем переплете?

Ошибка активации DbConnection

Соответствующие привязки недоступны, а тип не является самосвязываемым.

Путь активации:

4) Внедрение зависимости DbConnection в параметр существующиеConnection конструктора типа DbContext

3) Внедрение зависимости DbContext в параметр dbContext конструктора типа GenericRepository {User}

2) Внедрение зависимости IGenericRepository {User} в параметр repo конструктора типа HomeController

1) Запрос на HomeController

Предложения:

1) Убедитесь, что вы определили привязку для DbConnection.

2) Если привязка была определена в модуле, убедитесь, что модуль был загружен в ядро.

3) Убедитесь, что вы случайно не создали более одного ядра.

4) Если вы используете аргументы конструктора, убедитесь, что имя параметра соответствует имени параметра конструкторов.

5) Если вы используете автоматическую загрузку модуля, убедитесь в правильности пути поиска и фильтров.

public interface IGenericRepository where T : class
{
}

public class GenericRepository : IGenericRepository where T : class
{
        public GenericRepository(TLPContext dbContext)
        {
            DbContext = dbContext;
        }

        protected TLPContext DbContext { get; private set; }
}

[assembly: WebActivator.PreApplicationStartMethod(typeof(TLP.App_Start.NinjectWebCommon), "Start")]
[assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(TLP.App_Start.NinjectWebCommon), "Stop")]

namespace TLP.App_Start
{
    using Microsoft.Web.Infrastructure.DynamicModuleHelper;
    using Ninject;
    using Ninject.Web.Common;
    using System;
    using System.Web;
    using TLP.DataAccess;
    using TLP.DataAccess.Contract;
    using TLP.DataAccess.Implementation;

    public static class NinjectWebCommon
    {
        private static readonly Bootstrapper bootstrapper = new Bootstrapper();
        public static void Start()
        {
            DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
            DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
            bootstrapper.Initialize(CreateKernel);
        }

        public static void Stop()
        {
            bootstrapper.ShutDown();
        }

        private static IKernel CreateKernel()
        {
            var kernel = new StandardKernel();
            kernel.Bind().ToMethod(ctx => () => new Bootstrapper().Kernel);
            kernel.Bind().To();
            kernel.Bind();
            kernel.Bind(typeof(IGenericRepository)).To(typeof(GenericRepository));
            return kernel;
        }
    }
}


[DbModelBuilderVersion(DbModelBuilderVersion.V5_0)]
    public class TLPContext : DbContext
    {
        public TLPContext()
            : base("DefaultConnection")
        {
            // We do not want implicit uncontrollable lazy loading, instead we use the explicit Load method
            this.Configuration.LazyLoadingEnabled = false;
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove();

            // Primary key
            modelBuilder.Entity().HasKey(p => p.UserId);
            modelBuilder.Entity().Property(p => p.FirstName).HasMaxLength(30).IsRequired();
            modelBuilder.Entity().Property(p => p.RegisteredAt).IsRequired();
        }

        public DbSet Users { get; set; }
    }

Ответы на вопрос(2)

Ваш ответ на вопрос