public AuthorizedTodoItemsRepository( ILoggerFactory loggerFactory, IJsonApiContext jsonApiContext, IDbContextResolver contextResolver, IAuthorizationService authService) : base(loggerFactory, jsonApiContext, contextResolver) { _logger = loggerFactory.CreateLogger <AuthorizedTodoItemsRepository>(); _authService = authService; }
// NOTE: this repository MUST not rely on any other repositories or services public CurrentUserRepository( ILoggerFactory loggerFactory, IJsonApiContext jsonApiContext, IDbContextResolver contextResolver, ICurrentUserContext currentUserContext ) : base(loggerFactory, jsonApiContext, contextResolver) { this.DBContext = (AppDbContext)contextResolver.GetContext(); this.CurrentUserContext = currentUserContext; }
public RepositoryRelationshipUpdateHelper(IDbContextResolver contextResolver, IResourceFactory resourceFactory) { if (contextResolver == null) { throw new ArgumentNullException(nameof(contextResolver)); } _resourceFactory = resourceFactory ?? throw new ArgumentNullException(nameof(resourceFactory)); _context = contextResolver.GetContext(); }
public static IDbContext Create(DbContextOption option) { //if (option.DbContextType != null) //{ // return (IDbContext)ObjectHelper.CreateInstance(option.DbContextType, new object[] { option.IOMode, option.ConnectionStringName }); //} IDbContextResolver resolver = IoC.Container.Resolve <IDbContextResolver>(); return(resolver.Resolve(option)); }
public MigrateExecuter( IUnitOfWorkManager unitOfWorkManager, IDbContextResolver dbContextResolver, Log log) { _unitOfWorkManager = unitOfWorkManager; _dbContextResolver = dbContextResolver; _log = log; _appConfiguration = ISASConfiguration.Get(typeof(ISASMigratorModule).GetAssembly().GetDirectoryPathOrNull()); }
public TestModelRepository( ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph, IResourceFactory resourceFactory, IEnumerable <IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory) : base(targetedFields, contextResolver, resourceGraph, resourceFactory, constraintProviders, loggerFactory) { }
public AbpZeroDbMigrator( IUnitOfWorkManager unitOfWorkManager, IDbPerTenantConnectionStringResolver connectionStringResolver, IDbContextResolver dbContextResolver) : base( unitOfWorkManager, connectionStringResolver, dbContextResolver) { }
public DbContext CreateDbContext <TDbContext>(string connectionString, IDbContextResolver dbContextResolver) where TDbContext : DbContext { EnsureCurrentTransactionInitialized(); var dbContext = dbContextResolver.Resolve <TDbContext>(connectionString); DbContexts.Add(dbContext); return(dbContext); }
public EfUnitOfWork(IIocResolve iocResolver, IUnitOfWorkDefaultOptions defaultOptions, IConnectionStringResolver connectionStringResolver, IEfTransactionStrategy transactionStrategy, IDbContextTypeMatcher dbContextTypeMatche, IDbContextResolver dbContextResolver) : base(connectionStringResolver) { IocResolver = iocResolver; _transactionStrategy = transactionStrategy; _dbContextTypeMatcher = dbContextTypeMatche; _dbContextResolver = dbContextResolver; _activeDbContexts = new Dictionary <Type, DbContext>(); }
public TodoItemRepository( IDbContextResolver contextResolver, ILoggerFactory loggerFactory, IJsonApiContext jsonApiContext, IAuthenticationService authenticationService) : base(loggerFactory, jsonApiContext, contextResolver) { _logger = loggerFactory.CreateLogger <TodoItemRepository>(); _authenticationService = authenticationService; }
public LyricRepository(ExtraDbContext extraDbContext, ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph, IResourceFactory resourceFactory, IEnumerable <IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory) : base(targetedFields, contextResolver, resourceGraph, resourceFactory, constraintProviders, loggerFactory) { _extraDbContext = extraDbContext; extraDbContext.Database.EnsureCreated(); extraDbContext.Database.BeginTransaction(); }
private IResourceReadRepository <TModel, int> CreateTestRepository <TModel>(AppDbContext dbContext, IResourceGraph resourceGraph) where TModel : class, IIdentifiable <int> { var resourceFactory = new TestResourceFactory(); IDbContextResolver resolver = CreateTestDbResolver(dbContext); var targetedFields = new TargetedFields(); return(new EntityFrameworkCoreRepository <TModel, int>(targetedFields, resolver, resourceGraph, resourceFactory, Enumerable.Empty <IQueryConstraintProvider>(), NullLoggerFactory.Instance)); }
public UserRepository( ILoggerFactory loggerFactory, IJsonApiContext jsonApiContext, IOrganizationContext organizationContext, ICurrentUserContext currentUserContext, IDbContextResolver contextResolver ) : base(loggerFactory, jsonApiContext, contextResolver) { this.OrganizationContext = organizationContext; this.CurrentUserContext = currentUserContext; }
public Service( IEfdiagramModelParser <DbContext> parser, IDbContextResolver resolver, IDiagramGenerator generator, IDirectory dir) { this.parser = parser; this.resolver = resolver; this.generator = generator; this.dir = dir; }
public OrganizationInviteRequestRepository( ILoggerFactory loggerFactory, IJsonApiContext jsonApiContext, IDbContextResolver contextResolver, CurrentUserRepository currentUserRepository, EntityHooksService <OrganizationInviteRequest> statusUpdateService, IBackgroundJobClient backgroundJobClient ) : base(loggerFactory, jsonApiContext, currentUserRepository, statusUpdateService, contextResolver) { this.backgroundJobClient = backgroundJobClient; }
public EfCoreUnitOfWork( IServiceProvider serviceProvider, IEfCoreTransactionStrategy transactionStrategy, IDbContextResolver dbContextResolver ) { this.ServiceProvider = serviceProvider; this._transactionStrategy = transactionStrategy; this.ActiveDbContexts = new Dictionary <string, DbContext>(); this._dbContextResolver = dbContextResolver; }
public ProjectImportRepository( ILoggerFactory loggerFactory, IJsonApiContext jsonApiContext, IDbContextResolver contextResolver, CurrentUserRepository currentUserRepository, EntityHooksService <ProjectImport> statusUpdateService, IBackgroundJobClient backgroundJobClient ) : base(loggerFactory, jsonApiContext, currentUserRepository, statusUpdateService, contextResolver) { this.backgroundJobClient = backgroundJobClient; }
public WorkflowValidationService( IServiceProvider serviceProvider, IDbContextResolver contextResolver, IJobRepository <ProductWorkflowScheme, Guid> productWorkflowSchemeRepository ) { ServiceProvider = serviceProvider; ProductWorkflowSchemeRepository = productWorkflowSchemeRepository; this.dbContext = contextResolver.GetContext(); this.dbSet = contextResolver.GetDbSet <WorkflowScheme>(); }
/// <summary> /// Creates a new <see cref="EfUnitOfWork"/>. /// </summary> public EfUnitOfWork( IIocResolver iocResolver, IConnectionStringResolver connectionStringResolver, IDbContextResolver dbContextResolver, IUnitOfWorkDefaultOptions defaultOptions) : base(connectionStringResolver, defaultOptions) { IocResolver = iocResolver; _dbContextResolver = dbContextResolver; ActiveDbContexts = new Dictionary <string, DbContext>(); }
public ResultCapturingRepository( ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph, IResourceFactory resourceFactory, IEnumerable <IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory, ResourceCaptureStore captureStore) : base(targetedFields, contextResolver, resourceGraph, resourceFactory, constraintProviders, loggerFactory) { _captureStore = captureStore; }
public DefaultResourceRepository( ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph, IGenericServiceFactory genericServiceFactory, ILoggerFactory loggerFactory = null) { _targetedFields = targetedFields; _resourceGraph = resourceGraph; _genericServiceFactory = genericServiceFactory; _context = contextResolver.GetContext(); _dbSet = _context.Set <TResource>(); }
public CustomActiveUnitOfWork( IIocResolver iocResolver, IConnectionStringResolver connectionStringResolver, IUnitOfWorkFilterExecuter filterExecuter, IDbContextResolver dbContextResolver, IUnitOfWorkDefaultOptions defaultOptions, IDbContextTypeMatcher dbContextTypeMatcher, IEfCoreTransactionStrategy transactionStrategy) : base(iocResolver, connectionStringResolver, filterExecuter, dbContextResolver, defaultOptions, dbContextTypeMatcher, transactionStrategy) { }
public EfCoreUnitOfWork( IServiceProvider serviceProvider, IEfCoreTransactionStrategy transactionStrategy, IDbContextResolver dbContextResolver, IConnectionStringResolver connectionStringResolver) { _serviceProvider = serviceProvider; _transactionStrategy = transactionStrategy; _dbContextResolver = dbContextResolver; _connectionStringResolver = connectionStringResolver; _activeDbContexts = new Dictionary <string, DbContext>(); }
public UserRepository( ILoggerFactory loggerFactory, IJsonApiContext jsonApiContext, IOrganizationContext organizationContext, ICurrentUserContext currentUserContext, CurrentUserRepository currentUserRepository, EntityHooksService <User> statusUpdateService, IDbContextResolver contextResolver ) : base(loggerFactory, jsonApiContext, currentUserRepository, statusUpdateService, contextResolver) { this.OrganizationContext = organizationContext; this.CurrentUserContext = currentUserContext; }
public DefaultEFCoreDbMigrator( ILogger <DefaultEFCoreDbMigrator <TDbContext> > logger, IConnectionStringResolver connectionStringResolver, IUnitOfWorkManager unitOfWorkManager, IDbContextResolver dbContextResolver, IEfCoreDbSeeder <TDbContext> seeder) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _connectionStringResolver = connectionStringResolver ?? throw new ArgumentNullException(nameof(connectionStringResolver)); _unitOfWorkManager = unitOfWorkManager ?? throw new ArgumentNullException(nameof(unitOfWorkManager)); _dbContextResolver = dbContextResolver ?? throw new ArgumentNullException(nameof(dbContextResolver)); _seeder = seeder ?? throw new ArgumentNullException(nameof(seeder)); }
/// <summary> /// Creates a new <see cref="EfUnitOfWork"/>. /// </summary> public EfUnitOfWork( IIocResolver iocResolver, IDbContextResolver dbContextResolver, IEfUnitOfWorkFilterExecuter filterExecuter, IUnitOfWorkDefaultOptions defaultOptions, IDbContextTypeMatcher dbContextTypeMatcher) : base( defaultOptions, filterExecuter) { IocResolver = iocResolver; _dbContextResolver = dbContextResolver; ActiveDbContexts = new Dictionary <string, DbContext>(); }
public EfCoreUnitOfWork( IIocResolver iocResolver, IEfCoreTransactionStrategy transactionStrategy, IDbContextResolver dbContextResolver, IConnectionStringResolver connectionStringResolver, ISessionInfo sessionInfo) : base(connectionStringResolver, sessionInfo) { IocResolver = iocResolver; TransactionStrategy = transactionStrategy; DbContextResolver = dbContextResolver; ActiveDbContexts = new Dictionary <string, EfCoreDbContextBase>(); }
/// <summary> /// 获取指定数据上下文类型<typeparamref name="TEntity"/>的实例 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <typeparam name="TKey">实体主键类型</typeparam> /// <returns><typeparamref name="TEntity"/>所属上下文类的实例</returns> public IDbContext GetDbContext <TEntity, TKey>() where TEntity : IEntity <TKey> where TKey : IEquatable <TKey> { IEntityConfigurationTypeFinder typeFinder = _serviceProvider.GetService <IEntityConfigurationTypeFinder>(); Type entityType = typeof(TEntity); Type dbContextType = typeFinder.GetDbContextTypeForEntity(entityType); DbContext dbContext; OSharpDbContextOptions dbContextOptions = GetDbContextResolveOptions(dbContextType); DbContextResolveOptions resolveOptions = new DbContextResolveOptions(dbContextOptions); IDbContextResolver contextResolver = _serviceProvider.GetService <IDbContextResolver>(); ActiveTransactionInfo transInfo = ActiveTransactionInfos.GetOrDefault(resolveOptions.ConnectionString); //连接字符串的事务不存在,添加起始上下文事务信息 if (transInfo == null) { resolveOptions.ExistingConnection = null; dbContext = contextResolver.Resolve(resolveOptions); RelationalDatabaseCreator dbCreator; if ((dbCreator = dbContext.GetService <IDatabaseCreator>() as RelationalDatabaseCreator) != null) { if (!dbCreator.Exists()) { throw new OsharpException($"数据上下文“{dbContext.GetType().FullName}”的数据库不存在,请通过 Migration 功能进行数据迁移创建数据库。"); } } IDbContextTransaction transaction = dbContext.Database.BeginTransaction(); transInfo = new ActiveTransactionInfo(transaction, dbContext); ActiveTransactionInfos[resolveOptions.ConnectionString] = transInfo; } else { resolveOptions.ExistingConnection = transInfo.DbContextTransaction.GetDbTransaction().Connection; //相同连接串相同上下文类型并且已存在对象,直接返回上下文对象 if (transInfo.StarterDbContext.GetType() == resolveOptions.DbContextType) { return(transInfo.StarterDbContext as IDbContext); } dbContext = contextResolver.Resolve(resolveOptions); if (dbContext.IsRelationalTransaction()) { dbContext.Database.UseTransaction(transInfo.DbContextTransaction.GetDbTransaction()); } else { dbContext.Database.BeginTransaction(); } transInfo.AttendedDbContexts.Add(dbContext); } return(dbContext as IDbContext); }
public ProductRepository( IOrganizationContext organizationContext, ICurrentUserContext currentUserContext, UserRepository userRepository, ILoggerFactory loggerFactory, CurrentUserRepository currentUserRepository, IJsonApiContext jsonApiContext, IDbContextResolver contextResolver ) : base(loggerFactory, jsonApiContext, currentUserRepository, contextResolver) { this.OrganizationContext = organizationContext; this.CurrentUserContext = currentUserContext; this.UserRepository = userRepository; }
public DefaultEfCoreUnitOfWork( IIocResolver iocResolver, IEfCoreTransactionStrategy transactionStrategy, IDbContextResolver dbContextResolver, IConnectionStringResolver connectionStringResolver, ISessionInfo sessionInfo) : base( iocResolver, transactionStrategy, dbContextResolver, connectionStringResolver, sessionInfo) { }