public static IIocBuilder UseRepositoryRegistrarInAssembly(this IIocBuilder builder, [NotNull] Assembly assembly)
        {
            Check.NotNull(assembly, nameof(assembly));

            List <Type> dbContextTypes = typeof(StoveDbContext).AssignedTypesInAssembly(assembly).ToList();

            dbContextTypes.ForEach(type => EfRepositoryRegistrar.RegisterRepositories(type, builder));
            return(builder);
        }
        public static IIocBuilder UseStoveEntityFramework(this IIocBuilder builder)
        {
            builder.RegisterServices(r => r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()));
            builder.RegisterServices(r => r.Register <IEfUnitOfWorkFilterExecuter, IEfUnitOfWorkFilterExecuter, EfDynamicFiltersUnitOfWorkFilterExecuter>());
            builder.RegisterServices(r => r.RegisterGeneric(typeof(IDbContextProvider <>), typeof(UnitOfWorkDbContextProvider <>)));
            builder.RegisterServices(r => r.Register <IUnitOfWorkDefaultOptions, UnitOfWorkDefaultOptions>(Lifetime.Singleton));

            List <Type> dbContextTypes = typeof(StoveDbContext).AssignedTypes().ToList();

            dbContextTypes.ForEach(type => EfRepositoryRegistrar.RegisterRepositories(type, builder));

            return(builder);
        }
예제 #3
0
        public static IIocBuilder UseRepositoryRegistrarInAssembly([NotNull] this IIocBuilder builder, [NotNull] Assembly assembly)
        {
            Check.NotNull(assembly, nameof(assembly));

            builder.RegisterServices(r =>
            {
                r.OnRegistering += (sender, args) =>
                {
                    if (typeof(StoveDbContext).IsAssignableFrom(args.ImplementationType))
                    {
                        EfRepositoryRegistrar.RegisterRepositories(args.ImplementationType, builder);
                    }
                };
            });

            return(builder);
        }
예제 #4
0
        public static IIocBuilder UseStoveEntityFramework([NotNull] this IIocBuilder builder)
        {
            return(builder.RegisterServices(r =>
            {
                var ormRegistrars = new List <ISecondaryOrmRegistrar>();
                r.OnRegistering += (sender, args) =>
                {
                    if (typeof(StoveDbContext).IsAssignableFrom(args.ImplementationType))
                    {
                        EfRepositoryRegistrar.RegisterRepositories(args.ImplementationType, builder);
                        ormRegistrars.Add(new EfBasedSecondaryOrmRegistrar(builder, args.ImplementationType, DbContextHelper.GetEntityTypeInfos, EntityHelper.GetPrimaryKeyType));
                        args.ContainerBuilder.Properties[StoveConsts.OrmRegistrarContextKey] = ormRegistrars;
                    }
                };

                r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
                r.Register <IUnitOfWorkFilterExecuter, IEfUnitOfWorkFilterExecuter, EfDynamicFiltersUnitOfWorkFilterExecuter>();
                r.RegisterGeneric(typeof(IDbContextProvider <>), typeof(UnitOfWorkDbContextProvider <>));
                r.Register <IUnitOfWorkDefaultOptions, UnitOfWorkDefaultOptions>(Lifetime.Singleton);
            })
                   .UseStoveEntityFrameworkCommon());
        }