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); }
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); }
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()); }