Ejemplo n.º 1
0
        private void RegisterGenericRepositories()
        {
            var dbContextTypes =
                _typeFinder.Find(type =>
                                 type.IsPublic &&
                                 !type.IsAbstract &&
                                 type.IsClass &&
                                 typeof(EddoDbContext).IsAssignableFrom(type)
                                 );

            if (dbContextTypes.IsNullOrEmpty())
            {
                Logger.Warn("没有发现类EddoDbContext");
                return;
            }

            foreach (var dbContextType in dbContextTypes)
            {
                EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext(dbContextType, IocManager);
            }
            using (var dbContextMatcher = IocManager.ResolveAsDisposable <IDbContextTypeMatcher>())
            {
                dbContextMatcher.Object.Populate(dbContextTypes);
            }
        }
        public EntityFrameworkGenericRepositoryRegistrar1_Tests()
        {
            var fakeMainDbContextProvider   = NSubstitute.Substitute.For <IDbContextProvider <MyMainDbContext <int, long>, int, long> >();
            var fakeModuleDbContextProvider = NSubstitute.Substitute.For <IDbContextProvider <MyModuleDbContext <int, long>, int, long> >();

            LocalIocManager.IocContainer.Register(
                Component.For <ITypeFinder>().ImplementedBy <TypeFinder>(),
                Component.For <IDbContextProvider <MyMainDbContext <int, long>, int, long> >().UsingFactoryMethod(() => fakeMainDbContextProvider),
                Component.For <IDbContextProvider <MyModuleDbContext <int, long>, int, long> >().UsingFactoryMethod(() => fakeModuleDbContextProvider)
                );

            var typeFinder = LocalIocManager.Resolve <ITypeFinder>();
            var finder     = typeFinder as TypeFinder;

            finder.AssemblyFinder = new Repositories.AssembleFinder();


            var entities = finder.Find(
                x => (
                    typeof(IEntity).IsAssignableFrom(x) ||
                    x.IsInheritsOrImplements(typeof(IEntity <>))
                    )
                );

            //EntityFrameworkGenericRepositoryRegistrar.RegisterGenericRepositories<int, long>(finder, LocalIocManager);
            //EntityFrameworkGenericRepositoryRegistrar.RegisterGenericRepositories<int, long>(typeof(MyMainDbContext), LocalIocManager);

            EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext <int, long>(typeof(MyModuleDbContext <int, long>), LocalIocManager);
            EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext <int, long>(typeof(MyMainDbContext <int, long>), LocalIocManager);
        }
Ejemplo n.º 3
0
        public EntityFrameworkGenericRepositoryRegistrar_Tests()
        {
            var fakeMainDbContextProvider   = NSubstitute.Substitute.For <IDbContextProvider <MyMainDbContext> >();
            var fakeModuleDbContextProvider = NSubstitute.Substitute.For <IDbContextProvider <MyModuleDbContext> >();

            LocalIocManager.IocContainer.Register(
                Component.For <IDbContextProvider <MyMainDbContext> >().UsingFactoryMethod(() => fakeMainDbContextProvider),
                Component.For <IDbContextProvider <MyModuleDbContext> >().UsingFactoryMethod(() => fakeModuleDbContextProvider)
                );

            EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext(typeof(MyModuleDbContext), LocalIocManager);
            EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext(typeof(MyMainDbContext), LocalIocManager);
        }
Ejemplo n.º 4
0
        public void Should_Resolve_Generic_Repositories()
        {
            var fakeDbContextProvider = NSubstitute.Substitute.For <IDbContextProvider <MyDbContext <int, long>, int, long> >();

            LocalIocManager.IocContainer.Register(
                Component.For <ITypeFinder>().ImplementedBy <TypeFinder>(),
                Component.For <IDbContextProvider <MyDbContext <int, long>, int, long> >().UsingFactoryMethod(() => fakeDbContextProvider)
                );

            var typeFinder = LocalIocManager.Resolve <ITypeFinder>();
            var finder     = typeFinder as TypeFinder;

            finder.AssemblyFinder = new AssembleFinder();


            var entities = finder.Find(
                x => (
                    typeof(IEntity).IsAssignableFrom(x) ||
                    x.IsInheritsOrImplements(typeof(IEntity <>))
                    )
                );

            //EntityFrameworkGenericRepositoryRegistrar.RegisterGenericRepositories<int, long>(finder,
            //    LocalIocManager);

            var dbContextType = typeof(MyDbContext <int, long>);

            EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext <int, long>(dbContextType, LocalIocManager);

            var entity1Repository = LocalIocManager.Resolve <IRepository <MyEntity1> >();

            entity1Repository.ShouldNotBe(null);

            var entity1RepositoryWithPk = LocalIocManager.Resolve <IRepository <MyEntity1, int> >();

            entity1RepositoryWithPk.ShouldNotBe(null);

            var entity2Repository = LocalIocManager.Resolve <IRepository <MyEntity2, long> >();

            entity2Repository.ShouldNotBe(null);
        }
Ejemplo n.º 5
0
        private void RegisterGenericRepositories()
        {
            var dbContextTypes =
                _typeFinder.Find(type =>
                                 type.IsPublic &&
                                 !type.IsAbstract &&
                                 type.IsClass &&
                                 typeof(AbpDbContext).IsAssignableFrom(type)
                                 );

            if (dbContextTypes.IsNullOrEmpty())
            {
                Logger.Warn("No class found derived from AbpDbContext.");
                return;
            }

            foreach (var dbContextType in dbContextTypes)
            {
                EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext(dbContextType, IocManager);
            }
        }
Ejemplo n.º 6
0
        public void Should_Resolve_Generic_Repositories()
        {
            var fakeDbContextProvider = NSubstitute.Substitute.For <IDbContextProvider <MyDbContext> >();

            LocalIocManager.IocContainer.Register(
                Component.For <IDbContextProvider <MyDbContext> >().UsingFactoryMethod(() => fakeDbContextProvider)
                );

            EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext(typeof(MyDbContext), LocalIocManager);

            var entity1Repository = LocalIocManager.Resolve <IRepository <MyEntity1, int> >();

            entity1Repository.ShouldNotBe(null);

            var entity1RepositoryWithPk = LocalIocManager.Resolve <IRepository <MyEntity1, int> >();

            entity1RepositoryWithPk.ShouldNotBe(null);

            var entity2Repository = LocalIocManager.Resolve <IRepository <MyEntity2, long> >();

            entity2Repository.ShouldNotBe(null);
        }
Ejemplo n.º 7
0
        private void RegisterGenericRepositories <TTenantId, TUserId>()
            where TTenantId : struct
            where TUserId : struct
        {
            var dbContextTypes =
                _typeFinder.Find(type =>
                                 type.IsPublic &&
                                 !type.IsAbstract &&
                                 type.IsClass &&
                                 type.IsInheritsOrImplements(typeof(AbpDbContext <,>)));

            if (dbContextTypes.IsNullOrEmpty())
            {
                Logger.Warn("No class found derived from AbpDbContext.");
                return;
            }

            foreach (var dbContextType in dbContextTypes)
            {
                EntityFrameworkGenericRepositoryRegistrar.RegisterForDbContext <TTenantId, TUserId>(dbContextType, IocManager);
            }
        }