Exemplo n.º 1
0
        public override void DoServiceRegister(ContainerBuilder serviceContainerBuilder)
        {
            if (_options != null)
            {
                DbContextOptions dbContextOptions = new DbContextOptions
                {
                    ConnectionString = _options.ConnectionString,
                    DbType           = _options.DbType
                };
                Action <LogLevel, string> logAction = null;
                if (_options.OpenLogTrace)
                {
                    logAction = (level, log) =>
                    {
                        if (_container != null && _container.IsRegistered <Jimu.Logger.ILogger>())
                        {
                            Jimu.Logger.ILogger logger = _container.Resolve <Jimu.Logger.ILogger>();
                            logger.Info($"【EF】 - LogLevel: {level} - {log}");
                        }
                    };
                }

                DefaultDbContext dbContext = new DefaultDbContext(dbContextOptions, _options.TableModelAssemblyName, logAction, _options.LogLevel);
                serviceContainerBuilder.RegisterType <UnitOfWork>()
                .WithMetadata("context", dbContext)
                .InstancePerLifetimeScope();
            }
            base.DoServiceRegister(serviceContainerBuilder);
        }
Exemplo n.º 2
0
 public override void DoServiceRegister(ContainerBuilder serviceContainerBuilder)
 {
     serviceContainerBuilder.RegisterType <BaseDbContext>().As <IBaseDbContext>().InstancePerLifetimeScope();
     serviceContainerBuilder.RegisterGeneric(typeof(Repository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope();
     if (_options != null && _options.Enable)
     {
         //DbContextOptions dbContextOptions = new DbContextOptions
         //{
         //    ConnectionString = _options.ConnectionString,
         //    DbType = _options.DbType
         //};
         Action <LogLevel, string> logAction = null;
         if (_options.OpenLogTrace)
         {
             logAction = (level, log) =>
             {
                 if (_container != null && _container.IsRegistered <Jimu.Logger.ILogger>())
                 {
                     Jimu.Logger.ILogger logger = _container.Resolve <Jimu.Logger.ILogger>();
                     logger.Info($"【EF】 - LogLevel: {level} - {log}");
                 }
             };
         }
     }
     base.DoServiceRegister(serviceContainerBuilder);
 }
Exemplo n.º 3
0
        public override void DoServiceRegister(ContainerBuilder serviceContainerBuilder)
        {
            if (_options != null)
            {
                DbContextOptions dbContextOptions = new DbContextOptions
                {
                    ConnectionString = _options.ConnectionString,
                    DbType           = _options.DbType
                };
                Action <string> logAction = null;
                if (_options.OpenLogTrace)
                {
                    logAction = (log) =>
                    {
                        if (_container != null && _container.IsRegistered <Jimu.Logger.ILogger>())
                        {
                            Jimu.Logger.ILogger logger = _container.Resolve <Jimu.Logger.ILogger>();
                            logger.Info($"【SqlSugar】 - {log}");
                        }
                    };
                }

                serviceContainerBuilder.RegisterType <UnitOfWork>()
                .WithParameter("options", dbContextOptions)
                .WithParameter("logAction", logAction).InstancePerLifetimeScope();
            }
            base.DoServiceRegister(serviceContainerBuilder);
        }
Exemplo n.º 4
0
        public override void DoServiceRegister(ContainerBuilder serviceContainerBuilder)
        {
            if (_options != null)
            {
                DbContextOptions dbContextOptions = new DbContextOptions
                {
                    ConnectionString = _options.ConnectionString,
                    DbType           = _options.DbType
                };
                Action <string> logAction = null;
                if (_options.OpenLogTrace)
                {
                    logAction = (log) =>
                    {
                        if (_container != null && _container.IsRegistered <Jimu.Logger.ILogger>())
                        {
                            Jimu.Logger.ILogger logger = _container.Resolve <Jimu.Logger.ILogger>();
                            logger.Info($"【SqlSugar】 - {log}");
                        }
                    };
                }

                serviceContainerBuilder.RegisterType <UnitOfWork>()
                .WithParameter("options", dbContextOptions)
                .WithParameter("logAction", logAction)
                .AsImplementedInterfaces()
                .InstancePerLifetimeScope();

                // register repository
                var repositoryType = typeof(InlineEventHandler);
                var assembies      = AppDomain.CurrentDomain.GetAssemblies();
                var repositories   = assembies.SelectMany(x => x.GetTypes()).Where(x =>
                {
                    if (x.IsClass && !x.IsAbstract && typeof(InlineEventHandler).IsAssignableFrom(x))
                    {
                        foreach (var face in x.GetInterfaces())
                        {
                            var isRepository = face.IsGenericType && face.GetGenericTypeDefinition() == typeof(IRepository <,>);
                            if (isRepository)
                            {
                                return(true);
                            }
                        }
                    }
                    return(false);
                }).ToList();
                repositories.ForEach(x => serviceContainerBuilder.RegisterType(x).AsImplementedInterfaces().InstancePerLifetimeScope());
            }
            base.DoServiceRegister(serviceContainerBuilder);
        }