private static DataSet ExecuteStoredProcedure(string tableName, string storedProcedure, QueryOptions queryOptions, Parameter[] parameters) { if (queryOptions == null) { queryOptions = new QueryOptions() { ConnectionToUse = DefaultConnection }; } if (queryOptions.ConnectionToUse == null) { queryOptions.ConnectionToUse = DefaultConnection; } IOperable operation = Operation.GetOperationBasedOnConnectionType(ConnectionType); return(operation.ExecuteProcedure(tableName, storedProcedure, queryOptions, parameters)); }
private void EvaluateSelectQuery <T>(Expression <Func <T, bool> > expression, out Result <T> resultado, bool hasCache, ref DataCache <T> dataCache, QueryOptions queryOptions) where T : Cope <T>, IManageable, new() { if (!dataCache.IsEnabled) { resultado = operation.ExecuteProcedure(queryOptions, TransactionTypes.Select, true, null, expression); } else { resultado = hasCache == true?SelectInCache(expression, dataCache) : operation.ExecuteProcedure(queryOptions, TransactionTypes.Select, true, null, expression); if (hasCache && dataCache.IsPartialCache && resultado.Data.Count == 0) { resultado = operation.ExecuteProcedure(queryOptions, TransactionTypes.Select, true, null, expression); AlterCache(resultado, ref dataCache); } if (!resultado.IsFromCache && hasCache) { AlterCache(resultado, ref dataCache); } if (!hasCache && resultado.IsSuccessful) { dataCache.Cache = resultado; dataCache.LastCacheUpdate = DateTime.Now.Ticks; } if (resultado.IsFromCache) { resultado.Data = GetDataBasedFromCacheOnQueryOptions(ref dataCache, queryOptions); } } }