public IDbTracing CreateTracing <TQuery>(IDbExecutor <TQuery> executor, TQuery query) where TQuery : IDbQuery { var tracing = new DbTracing(query); _list.Add(tracing); return(tracing); }
/// <summary> /// 初始化类<see cref="DbContextBase{TModel}"/>。 /// </summary> /// <param name="executor">数据库执行接口。</param> /// <param name="logger">日志接口。</param> /// <param name="sqlHelper">SQL辅助接口。</param> /// <param name="sqlGenerator">脚本生成器。</param> /// <param name="visitorFactory">条件表达式解析器工厂实例。</param> public DbTransactionContext(IDbExecutor executor, ILogger logger, ISqlHelper sqlHelper, IQuerySqlGenerator sqlGenerator, IExpressionVisitorFactory visitorFactory) : base(executor, logger, sqlHelper, sqlGenerator, visitorFactory) { _executor = executor; _visitorFactory = visitorFactory; }
private void PrepareDataForRestore( IDbExecutor dbExecutor) { Log.Info("Deleting incomplete jobs."); dbExecutor.Execute("DELETE FROM WorkItems WHERE Completed IS NULL"); Log.Info("Deleted incomplete jobs."); }
public bool TryAddDbExecutor(IDbExecutor dbExecutor) { CheckValue.NotNull(dbExecutor, nameof(dbExecutor)); //added executor.Guarantee that it will eventually be released AddedExecutors.AddIfNotContains(dbExecutor); if (!EnsureToOpenTransaction()) { return(true); } if (dbExecutor.HasTransaction) { return(true); } bool result = false; var transactionObj = OpenTransactionAndGiveExecutor(_transactions, dbExecutor); if (transactionObj != null) { //reused or new? if (!CreatedTransactions.Any(s => s.ID == transactionObj.ID)) { CreatedTransactions.Add(transactionObj); } result = true; } return(result); }
public PgsqlDbEngine(NpgsqlConnectionStringBuilder connectionString, string logPath) { _connectionString = connectionString; _logPath = logPath; _executor = null; }
public DatabaseFixture() { Sql.MappingCheckEnabled = true; ISqlAdapter.Current = new SqlServerAdapter(); Db = new DbExecutor(ConnectionString); }
public IDbTracing CreateTracing(IDbExecutor executor, DbQuery query) { var tracing = new DbTracing(query); _list.Add(tracing); return(tracing); }
public ContactRepository(IContactMapper contactMapper, IContactsQueryBuilder contactsQueryBuilder, IDbExecutor dbExecutor, IDatabase database) { _contactMapper = contactMapper; _contactsQueryBuilder = contactsQueryBuilder; _dbExecutor = dbExecutor; _database = database; }
public MssqlDbEngine(SqlConnectionStringBuilder connectionString, string logPath) { _connectionString = connectionString; _logPath = logPath; _executor = new MssqlAdoExecutor(_connectionString.ToString()); }
internal static PackageRegistration GetPackageRegistration( IDbExecutor dbExecutor, string id) { return(dbExecutor.Query <PackageRegistration>( "SELECT [Key], Id FROM PackageRegistrations WHERE Id = @id", new { id }).SingleOrDefault()); }
internal static IEnumerable <Package> GetPackages( IDbExecutor dbExecutor, int packageRegistrationKey) { return(dbExecutor.Query <Package>( "SELECT pr.Id, p.Version FROM Packages p JOIN PackageRegistrations PR on pr.[Key] = p.PackageRegistrationKey WHERE pr.[Key] = @packageRegistrationKey", new { packageRegistrationKey })); }
/// <summary> /// 初始化类<see cref="QueryContext{TModel}"/>。 /// </summary> /// <param name="sqlHelper">SQL辅助接口。</param> /// <param name="visitorFactory">表达式解析工厂接口。</param> /// <param name="sqlGenerator">SQL脚本生成接口。</param> /// <param name="db">数据库接口。</param> public QueryContext(ISqlHelper sqlHelper, IExpressionVisitorFactory visitorFactory, IQuerySqlGenerator sqlGenerator, IDbExecutor db) { _visitorFactory = visitorFactory; _sqlGenerator = sqlGenerator; _db = db; SqlHelper = sqlHelper; Entity = typeof(TModel).GetEntityType(); }
protected DbQuery(IDbExecutor dbExecutor) { if (dbExecutor == null) { throw new ArgumentNullException(nameof(dbExecutor)); } DbExecutor = dbExecutor; }
protected DbCommandAsync(IDbExecutor dbExecutor) { if (dbExecutor == null) { throw new ArgumentNullException(nameof(dbExecutor)); } DbExecutor = dbExecutor; }
public DatabaseFixture() { Sql.MappingCheckEnabled = true; ISqlAdapter.Current = new PostgreSqlAdapter(); DefaultTypeMap.MatchNamesWithUnderscores = true; Db = new DbExecutor(ConnectionString); }
private void RenameDatabaseBackup( IDbExecutor masterDbExecutor, string restoreDbName) { Log.Info("Renaming {0} to NuGetGallery.", restoreDbName); var sql = string.Format("ALTER DATABASE {0} MODIFY Name = NuGetGallery", restoreDbName); masterDbExecutor.Execute(sql); Log.Info("Renamed {0} to NuGetGallery.", restoreDbName); }
internal static Package GetPackage( IDbExecutor dbExecutor, string id, string version) { return(dbExecutor.Query <Package>( "SELECT p.[Key], pr.Id, p.Version, p.NormalizedVersion, p.Hash FROM Packages p JOIN PackageRegistrations pr ON pr.[Key] = p.PackageRegistrationKey WHERE pr.Id = @id AND p.Version = @version", new { id, version }).SingleOrDefault()); }
/// <summary> /// 初始化类<see cref="DbContextBase{TModel}"/>。 /// </summary> /// <param name="executor">数据库执行接口。</param> /// <param name="logger">日志接口。</param> /// <param name="sqlHelper">SQL辅助接口。</param> /// <param name="sqlGenerator">脚本生成器。</param> /// <param name="visitorFactory">条件表达式解析器工厂实例。</param> protected DbContextBase(IDbExecutor executor, ILogger logger, ISqlHelper sqlHelper, IQuerySqlGenerator sqlGenerator, IExpressionVisitorFactory visitorFactory) { Logger = logger; SqlHelper = sqlHelper; SqlGenerator = sqlGenerator; _executor = executor; _visitorFactory = visitorFactory; EntityType = typeof(TModel).GetEntityType(); }
private void RenameDatabaseBackup( IDbExecutor masterDbExecutor, string restoreDbName) { Log.Info("Renaming {0} to NuGetGallery.", restoreDbName); var sql = $"ALTER DATABASE {restoreDbName} MODIFY Name = NuGetGallery"; masterDbExecutor.Execute(sql); Log.Info("Renamed {0} to NuGetGallery.", restoreDbName); }
public static Database GetDatabase( IDbExecutor dbExecutor, string databaseName) { var dbs = dbExecutor.Query<Database>( "SELECT name, state FROM sys.databases WHERE name = @databaseName", new { databaseName }); return dbs.SingleOrDefault(); }
public static Db GetDatabase( IDbExecutor dbExecutor, string databaseName) { var dbs = dbExecutor.Query <Db>( "SELECT name, state FROM sys.databases WHERE name = @databaseName", new { databaseName }); return(dbs.SingleOrDefault()); }
public static bool DatabaseExistsAndIsOnline( IDbExecutor dbExecutor, string restoreName) { var backupDbs = dbExecutor.Query <Db>( "SELECT name, state FROM sys.databases WHERE name = @restoreName AND state = @state", new { restoreName, state = OnlineState }) .OrderByDescending(database => database.Name); return(backupDbs.FirstOrDefault() != null); }
public static bool DatabaseExistsAndIsOnline( IDbExecutor dbExecutor, string restoreName) { var backupDbs = dbExecutor.Query<Database>( "SELECT name, state FROM sys.databases WHERE name = @restoreName AND state = @state", new { restoreName, state = OnlineState }) .OrderByDescending(database => database.Name); return backupDbs.FirstOrDefault() != null; }
public int Create(IDbExecutor dbExecutor, Driver driver) { var insertDriverSql = $@" insert into Drivers(FullName, Phone) values (""{driver.FullName}"", ""{driver.Phone}""); select last_insert_rowid(); "; var driverId = dbExecutor.Query <int>(insertDriverSql).First(); return(driverId); }
private void RenameLiveDatabase( IDbExecutor masterDbExecutor) { var timestamp = Util.GetTimestamp(); var liveDbName = "Live_" + timestamp; Log.Info("Renaming NuGetGallery to {0}.", liveDbName); var sql = $"ALTER DATABASE NuGetGallery MODIFY Name = {liveDbName}"; masterDbExecutor.Execute(sql); Log.Info("Renamed NuGetGallery to {0}.", liveDbName); }
/// <summary> /// 执行分页查询命令,并返回表。 /// </summary> /// <param name="executor">执行器。</param> /// <param name="page">一个分页的实现。</param> /// <returns>一张包含总记录数的表。</returns> public static PageTable ToTable(this IDbExecutor executor, IPagination page) { if (executor == null) { throw new ArgumentNullException(nameof(executor)); } if (page == null) { throw new ArgumentNullException(nameof(page)); } return(executor.ToTable(page.PageNumber, page.PageSize)); }
/// <summary> /// 异步执行分页查询命令,并返回匿名实体的集合。 /// </summary> /// <param name="executor">执行器。</param> /// <param name="cancellationToken">针对取消请求监视的标记。</param> /// <param name="page">一个分页的实现。</param> /// <returns>包含总记录数的匿名实体的集合。</returns> public static Task <PageData <dynamic> > ToEntitiesAsync(this IDbExecutor executor, CancellationToken cancellationToken, IPagination page) { if (executor == null) { throw new ArgumentNullException(nameof(executor)); } if (page == null) { throw new ArgumentNullException(nameof(page)); } return(executor.ToEntitiesAsync(cancellationToken, page.PageNumber, page.PageSize)); }
/// <summary> /// 执行分页查询命令,并返回匿名实体的集合。 /// </summary> /// <param name="executor">执行器。</param> /// <param name="page">一个分页的实现。</param> /// <returns>包含总记录数的匿名实体的集合。</returns> public static PageData <dynamic> ToEntities(this IDbExecutor executor, IPagination page) { if (executor == null) { throw new ArgumentNullException(nameof(executor)); } if (page == null) { throw new ArgumentNullException(nameof(page)); } return(executor.ToEntities(page.PageNumber, page.PageSize)); }
private void StartBackupCopy( IDbExecutor dbExecutor, string sourceDbServerName, string destinationDbServerName, string sourceDbName, string copyDbName) { Log.Trace("Starting copy of {0} from {1} to {2}.", sourceDbName, sourceDbServerName, destinationDbServerName); if (!WhatIf) { var sql = string.Format("CREATE DATABASE {0} AS COPY OF {1}.{2}", copyDbName, sourceDbServerName, sourceDbName); dbExecutor.Execute(sql); } Log.Info("Copying {0} from {1} to {2}.", sourceDbName, sourceDbServerName, destinationDbServerName); }
private void StartBackupCopy( IDbExecutor dbExecutor, string sourceDbServerName, string destinationDbServerName, string sourceDbName, string copyDbName) { Log.Trace("Starting copy of {0} from {1} to {2}.", sourceDbName, sourceDbServerName, destinationDbServerName); if (!WhatIf) { var sql = $"CREATE DATABASE {copyDbName} AS COPY OF {sourceDbServerName}.{sourceDbName}"; dbExecutor.Execute(sql); } Log.Info("Copying {0} from {1} to {2}.", sourceDbName, sourceDbServerName, destinationDbServerName); }
protected virtual async Task <ITransactionObject> OpenTransactionAndGiveExecutorAsync( IEnumerable <ITransactionProvider> transactionProviders, IDbExecutor dbExecutor, CancellationToken cancellationToken) { //if not any provider,reutrn false. if (transactionProviders.Count() == 0) { return(null); } ITransactionObject exceptedTransaction = null; foreach (var transactionProvider in transactionProviders) { if (!transactionProvider.CanCreate(dbExecutor)) { continue; } //already has transaction,can reused? if (CreatedTransactions.Count > 0) { var reusedTransaction = transactionProvider.Reused(CreatedTransactions, dbExecutor); if (reusedTransaction != null) { //reused this transaction,and back. await dbExecutor.UseTransactionAsync(reusedTransaction, cancellationToken); return(reusedTransaction); } } //create new transaction. exceptedTransaction = await transactionProvider.GetTransactionObjectAsync(new CreateTransactionContext(this, dbExecutor), cancellationToken); if (exceptedTransaction != null) { await dbExecutor.UseTransactionAsync(exceptedTransaction, cancellationToken); break; } //if exceptedTransaction is null,let the next provider create. } return(exceptedTransaction); }
internal static User GetUser( IDbExecutor dbExecutor, string username) { var user = dbExecutor.Query <User>( "SELECT u.[Key], u.Username, u.EmailAddress, u.UnconfirmedEmailAddress FROM Users u WHERE u.Username = @username", new { username }).SingleOrDefault(); if (user != null) { user.PackageRegistrationIds = dbExecutor.Query <string>( "SELECT r.[Id] FROM PackageRegistrations r INNER JOIN PackageRegistrationOwners o ON o.PackageRegistrationKey = r.[Key] WHERE o.UserKey = @userKey AND NOT EXISTS(SELECT * FROM PackageRegistrationOwners other WHERE other.PackageRegistrationKey = r.[Key] AND other.UserKey != @userKey)", new { userkey = user.Key }); } return(user); }
/// <summary> /// 尝试创建 IDbTracing 对象 /// </summary> /// <param name="executor">查询执行器</param> /// <param name="query">即将执行的查询对象</param> /// <returns>追踪该查询执行过程的 IDbTracing 对象</returns> protected IDbTracing TryCreateTracing(IDbExecutor executor, DbQuery query) { var traceSerivce = query.Configures.GetService <IDbTraceService>() ?? TraceService; if (traceSerivce == null) { return(null); } try { return(traceSerivce.CreateTracing(executor, query)); } catch { return(null); } }
public DataLayerFixture() { ContainerBuilder builder = new ContainerBuilder(); builder.RegisterModule <Bloemert.Data.Core.ModuleLoader>(); builder.RegisterModule <Bloemert.Lib.Config.ModuleLoader>(); builder.RegisterType <TestRepository>() .As <ITestRepository>() .SingleInstance(); IoC = builder.Build(); Db = IoC.Resolve <IDbExecutor>(); CreateTestTable(); }
public SqlServerRepository(IDbExecutor connection) { _connection = connection; }
public HomeController(IDbExecutor dbConnection, IResponse response) { _response = response; _dbConnection = dbConnection; }
internal static User GetUser( IDbExecutor dbExecutor, string username) { var user = dbExecutor.Query<User>( "SELECT u.[Key], u.Username, u.EmailAddress, u.UnconfirmedEmailAddress FROM Users u WHERE u.Username = @username", new { username }).SingleOrDefault(); if (user != null) { user.PackageRegistrationIds = dbExecutor.Query<string>( "SELECT r.[Id] FROM PackageRegistrations r INNER JOIN PackageRegistrationOwners o ON o.PackageRegistrationKey = r.[Key] WHERE o.UserKey = @userKey AND NOT EXISTS(SELECT * FROM PackageRegistrationOwners other WHERE other.PackageRegistrationKey = r.[Key] AND other.UserKey != @userKey)", new { userkey = user.Key }); } return user; }
internal static IEnumerable<Package> GetPackages( IDbExecutor dbExecutor, int packageRegistrationKey) { return dbExecutor.Query<Package>( "SELECT pr.Id, p.Version FROM Packages p JOIN PackageRegistrations PR on pr.[Key] = p.PackageRegistrationKey WHERE pr.[Key] = @packageRegistrationKey", new { packageRegistrationKey }); }
internal static PackageRegistration GetPackageRegistration( IDbExecutor dbExecutor, string id) { return dbExecutor.Query<PackageRegistration>( "SELECT [Key], Id FROM PackageRegistrations WHERE Id = @id", new { id }).SingleOrDefault(); }
internal static Package GetPackage( IDbExecutor dbExecutor, string id, string version) { return dbExecutor.Query<Package>( "SELECT p.[Key], pr.Id, p.Version, p.NormalizedVersion, p.Hash FROM Packages p JOIN PackageRegistrations pr ON pr.[Key] = p.PackageRegistrationKey WHERE pr.Id = @id AND p.Version = @version", new { id, version }).SingleOrDefault(); }
private void RenameLiveDatabase( IDbExecutor masterDbExecutor) { var timestamp = Util.GetTimestamp(); var liveDbName = "Live_" + timestamp; Log.Info("Renaming NuGetGallery to {0}.", liveDbName); var sql = string.Format("ALTER DATABASE NuGetGallery MODIFY Name = {0}", liveDbName); masterDbExecutor.Execute(sql); Log.Info("Renamed NuGetGallery to {0}.", liveDbName); }
public void Setup() { _dbConnection = Substitute.For<IDbExecutor>(); }