/// <summary> /// Ejecuta el query en un contexto de EF. Devuelve la cantidad de filas afectadas /// Abre la conexión en caso de que no este abierta y la deja abierta /// </summary> public static async Task <int> Execute <TDb>(this ISqlStatement statement, DbContext context) { var sql = statement.ToSql(); var pars = NpgsqlParamLogic.GetParams(sql.Params); return(await DoConnection(context, async conn => await NpgsqlMapper.ExecuteAsync(conn, sql))); }
/// <summary> /// Execute the given statement and returns the number of affected rows /// </summary> public static async Task <int> ExecuteAsync <TDb>(this ISqlStatement statement, NpgsqlConnection conn) { var sql = statement.ToSql(); var pars = NpgsqlParamLogic.GetParams(sql.Params); return(await NpgsqlMapper.ExecuteAsync(conn, sql)); }
/// <summary> /// Execute the given statement and returns the number of affected rows /// </summary> public static int Execute <TDb>(this ISqlStatement statement, NpgsqlConnection conn) { var sql = statement.ToSql(); var pars = NpgsqlParamLogic.GetParams(sql.Params); return(NpgsqlMapper.Execute(conn, sql)); }
/// <summary> /// Obtiene el SQL y los parámetros de un select, los parámetros se sustituyen para queries de Entity Framework /// </summary> public static SqlResult ToSql(this ISqlStatement statement) => statement.ToSql(ParamMode.EntityFramework);