void InitDb() { if (_factory.Provider == DatabaseProvider.PostgreSql) { PgDbSetting ps = new PgDbSetting(); Npgsql.NpgsqlConnectionStringBuilder sb = new Npgsql.NpgsqlConnectionStringBuilder(ps.ConnectionString); sb.Database = "postgres"; ps.ConnectionString = sb.ToString(); AnyDbFactory f = new AnyDbFactory(ps); using (AnyDbConnection con = f.OpenConnection()) { con.Execute("drop database if exists qb_test"); con.Execute("create database qb_test"); } } if (_factory.Provider == DatabaseProvider.SqLite) { Microsoft.Data.Sqlite.SqliteConnectionStringBuilder sb = new Microsoft.Data.Sqlite.SqliteConnectionStringBuilder(_factory.ConnectionString); if (File.Exists(sb.DataSource)) { File.Delete(sb.DataSource); } } using (AnyDbConnection con = _factory.OpenConnection()) { con.Execute(@" CREATE TABLE customer ( id serial NOT NULL, first_name varchar(50) NULL, last_name varchar(50) NULL, CONSTRAINT customer_pk PRIMARY KEY (id) );"); for (int i = 0; i < 100; i++) { con.Execute($"insert into customer (first_name, last_name) values ('F_{i}', 'L_{i}')"); } } }
public static int Execute(this AnyDbConnection cnn, Delete query, IDbTransaction transaction = null, int?commandTimeout = null) { string sql = GetDeleteSql(cnn, query); if (!commandTimeout.HasValue) { commandTimeout = cnn.DefaultCommandTimeout; } DynamicParameters parameters = GetParameters(query.Query.CommandParams); return(cnn.Execute(sql, parameters, transaction, commandTimeout, CommandType.Text)); }
public static long Execute(this AnyDbConnection cnn, Insert query, IDbTransaction transaction = null, int?commandTimeout = null) { string sql = GetInsertSql(cnn, query); if (!commandTimeout.HasValue) { commandTimeout = cnn.DefaultCommandTimeout; } DynamicParameters parameters = GetParameters(query.Query.CommandParams); bool returnIdentity = !string.IsNullOrEmpty(query.Query.IdentityField); if (!returnIdentity) { return(Convert.ToInt64(cnn.Execute(sql, parameters, transaction, commandTimeout, CommandType.Text))); } return(Convert.ToInt64(cnn.ExecuteScalar(sql, parameters, transaction, commandTimeout, CommandType.Text))); }