У меня проблема с разрешением зависимостей в шаблоне репозитория - PullRequest
0 голосов
/ 08 января 2019

Я реализую шаблон репозитория с Ado.net и IoC-Container Ninject, как Dependecy Resolver. Но теперь у меня есть две возможности для реализации этой зависимости. 1 способ - я получил хороший результат, 2 способ - ошибка транзакции. Как это: System.Data.SqlClient.SqlTransaction.ZombieCheck () System.Data.SqlClient.SqlTransaction.Commit ()

public class BaseController : Controller
    {
        public IUnitOfWork UnitOfWork { get; set; }
        public BaseController()
        {

            IKernel ninjectKernel = new StandardKernel();
            ninjectKernel.Bind<IUnitOfWork>().To<AdoNetUnitOfWork>().InRequestScope().WithConstructorArgument("context", new DbContext
                (new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)));
            UnitOfWork = ninjectKernel.Get<IUnitOfWork>();

        }
    } // This is first way.



public class BaseController : Controller
    {
        [Inject]
        public IUnitOfWork UnitOfWork { get; set; }


//In Global.asax

NinjectModule registrations = new NinjectRegistration();
            var kernel = new StandardKernel(registrations);
            DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));

public class NinjectRegistration : NinjectModule
    {
        public override void Load()
        {
            Bind<IUnitOfWork>().To<AdoNetUnitOfWork>().InRequestScope()
                .WithConstructorArgument("context", new DbContext
                (new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)));

            //Unbind<ModelValidatorProvider>();
            //Rebind<ModelValidatorProvider>().To<AttributeValidatorProvider>();
        }
    }

// This second way
...