public FindRowIdentityResult FindRowIdentity(FindRowIdentityParameters parameters) { using (TransactionScope scope = new TransactionScope()) { FindRowIdentityResult result = null; using (IDbConnection connection = new DbConnection(ConnectionString)) { connection.Open(); using (IDbCommand command = connection.CreateCommand()) { command.CommandText = "RowTracker.Find"; ((OracleCommand)command).BindByName = true; foreach (IDbDataParameter parameter in FindRowIdentityTranslator.TranslateParameters(parameters)) { command.Parameters.Add(parameter); } command.Prepare(); command.CommandType = CommandType.StoredProcedure; command.ExecuteNonQuery(); result = FindRowIdentityTranslator.TranslateResult(command.Parameters); } } scope.Complete(); return(result); } }
public static IList <IDbDataParameter> TranslateParameters(FindRowIdentityParameters parameters) { IList <IDbDataParameter> parameterList = new List <IDbDataParameter>(); IDbDataParameter dbParameter; dbParameter = new OracleParameter(); dbParameter.ParameterName = "ID_I"; dbParameter.DbType = DbTypeConvertor.ConvertToDbType(typeof(string)); dbParameter.Direction = ParameterDirection.Input; dbParameter.Value = parameters.Id; parameterList.Add(dbParameter); dbParameter = new OracleParameter(); dbParameter.ParameterName = "ROWIDENTITY_I"; dbParameter.DbType = DbTypeConvertor.ConvertToDbType(typeof(string)); dbParameter.Direction = ParameterDirection.Output; dbParameter.Size = 255; parameterList.Add(dbParameter); return(parameterList); }