public int Update(string statementName, object parameterObject) { bool flag = false; ISqlMapSession localSession = this._sessionStore.LocalSession; int num = 0; if (localSession == null) { localSession = this.CreateSqlMapSession(); flag = true; } try { num = this.GetMappedStatement(statementName).ExecuteUpdate(localSession, parameterObject); } catch { throw; } finally { if (flag) { localSession.CloseConnection(); } } return(num); }
public T QueryForObject <T>(string statementName, object parameterObject, T instanceObject) { bool flag = false; ISqlMapSession localSession = this._sessionStore.LocalSession; T local = default(T); if (localSession == null) { localSession = this.CreateSqlMapSession(); flag = true; } try { local = this.GetMappedStatement(statementName).ExecuteQueryForObject <T>(localSession, parameterObject, instanceObject); } catch { throw; } finally { if (flag) { localSession.CloseConnection(); } } return(local); }
public IList <T> QueryWithRowDelegate <T>(string statementName, object parameterObject, RowDelegate <T> rowDelegate) { bool flag = false; ISqlMapSession localSession = this._sessionStore.LocalSession; IList <T> list = null; if (localSession == null) { localSession = this.CreateSqlMapSession(); flag = true; } try { list = this.GetMappedStatement(statementName).ExecuteQueryForRowDelegate <T>(localSession, parameterObject, rowDelegate); } catch { throw; } finally { if (flag) { localSession.CloseConnection(); } } return(list); }
public object QueryForObject(string statementName, object parameterObject, object resultObject) { bool flag = false; ISqlMapSession localSession = this._sessionStore.LocalSession; object obj2 = null; if (localSession == null) { localSession = this.CreateSqlMapSession(); flag = true; } try { obj2 = this.GetMappedStatement(statementName).ExecuteQueryForObject(localSession, parameterObject, resultObject); } catch { throw; } finally { if (flag) { localSession.CloseConnection(); } } return(obj2); }
public IDictionary QueryForMapWithRowDelegate(string statementName, object parameterObject, string keyProperty, string valueProperty, DictionaryRowDelegate rowDelegate) { bool flag = false; ISqlMapSession localSession = this._sessionStore.LocalSession; IDictionary dictionary = null; if (localSession == null) { localSession = this.CreateSqlMapSession(); flag = true; } try { dictionary = this.GetMappedStatement(statementName).ExecuteQueryForMapWithRowDelegate(localSession, parameterObject, keyProperty, valueProperty, rowDelegate); } catch { throw; } finally { if (flag) { localSession.CloseConnection(); } } return(dictionary); }
public IList QueryForList(string statementName, object parameterObject, int skipResults, int maxResults) { IList list; bool flag = false; ISqlMapSession localSession = this._sessionStore.LocalSession; if (localSession == null) { localSession = this.CreateSqlMapSession(); flag = true; } try { list = this.GetMappedStatement(statementName).ExecuteQueryForList(localSession, parameterObject, skipResults, maxResults); } catch { throw; } finally { if (flag) { localSession.CloseConnection(); } } return(list); }
public void QueryForList(string statementName, object parameterObject, IList resultObject) { bool flag = false; ISqlMapSession localSession = this._sessionStore.LocalSession; if (resultObject == null) { throw new DataMapperException("resultObject parameter must be instantiated before being passed to SqlMapper.QueryForList"); } if (localSession == null) { localSession = this.CreateSqlMapSession(); flag = true; } try { this.GetMappedStatement(statementName).ExecuteQueryForList(localSession, parameterObject, resultObject); } catch { throw; } finally { if (flag) { localSession.CloseConnection(); } } }
public string GetRunString <T>(string methodName, object parameters) { Type type = typeof(T); var statementName = type.FullName + "." + methodName; string commandText = string.Empty; var isSessionLocal = false; ISqlMapSession session = this._context.Writer.LocalSession; if (session == null) { session = this._context.Writer.CreateSqlMapSession(); isSessionLocal = true; } try { var statement = this._context.Writer.GetMappedStatement(statementName); var scope = statement.Statement.Sql.GetRequestScope(statement, parameters, session); statement.PreparedCommand.Create(scope, session, statement.Statement, parameters); commandText = scope.IDbCommand.CommandText; foreach (DbParameter pt in scope.IDbCommand.Parameters) { Regex regex = new Regex(pt.ParameterName + @"\D"); commandText = regex.Replace(commandText, GetDbParameterValue(pt)); } } catch { throw; } finally { if (isSessionLocal) { session.CloseConnection(); } } return(commandText); }
public object Execute(object[] Arguments) { object value = null; var parameter = WarpParameter(Arguments); switch (this._dataAccessType) { case DataAccessType.Insert: if (this._intercept != null) { this._intercept.BeforeExecute(this._method.Name, parameter); } value = this._context.Writer.Insert(this._statementName, parameter); if (this._intercept != null) { this._intercept.EndExecute(this._method.Name, parameter, value); } break; case DataAccessType.Delete: if (this._intercept != null) { this._intercept.BeforeExecute(this._method.Name, parameter); } value = this._context.Writer.Delete(this._statementName, parameter); if (this._intercept != null) { this._intercept.EndExecute(this._method.Name, parameter, value); } break; case DataAccessType.Update: if (this._intercept != null) { this._intercept.BeforeExecute(this._method.Name, parameter); } value = this._context.Writer.Update(this._statementName, parameter); if (this._intercept != null) { this._intercept.EndExecute(this._method.Name, parameter, value); } break; case DataAccessType.SelectReadOnly: case DataAccessType.SelectReadWrite: if (this._intercept != null) { this._intercept.BeforeExecute(this._method.Name, parameter); } if (this._isIPagedList) { if (this._context.HasDataAccessTypeContext) { value = QueryPageList(this._context.ContextMapper, parameter); } else if (this._dataAccessType == DataAccessType.SelectReadOnly) { value = QueryPageList(this._context.Reader, parameter); } else { value = QueryPageList(this._context.Writer, parameter); } } else if (this._isSelectList) { if (this._context.HasDataAccessTypeContext) { value = this._context.ContextMapper.QueryForList(this._statementName, parameter); } else if (this._dataAccessType == DataAccessType.SelectReadOnly) { value = this._context.Reader.QueryForList(this._statementName, parameter); } else { value = this._context.Writer.QueryForList(this._statementName, parameter); } } else { if (this._context.HasDataAccessTypeContext) { value = this._context.ContextMapper.QueryForObject(this._statementName, parameter); } else if (this._dataAccessType == DataAccessType.SelectReadOnly) { value = this._context.Reader.QueryForObject(this._statementName, parameter); } else { value = this._context.Writer.QueryForObject(this._statementName, parameter); } if (value == null && this._isNotCanNullReturnValue) { throw new DataAccessException("返回值是一个不可空的对象,但是返回值为空,请使用可空对象定义返回值"); } } if (this._intercept != null) { this._intercept.EndExecute(this._method.Name, parameter, value); } break; } if (this._outTypeConfig != null) { bool isOut = false; if (this._outTypeConfig.IgnoreEnvironment) { isOut = true; } else if (!AppInfo.DeployEnvInfo.IsFormal) { isOut = true; } if (isOut) { string commandText = string.Empty; var isSessionLocal = false; ISqlMapSession session = this._context.Writer.LocalSession; if (session == null) { session = this._context.Writer.CreateSqlMapSession(); isSessionLocal = true; } try { var statement = this._context.Writer.GetMappedStatement(this._statementName); var scope = statement.Statement.Sql.GetRequestScope(statement, parameter, session); statement.PreparedCommand.Create(scope, session, statement.Statement, parameter); commandText = scope.IDbCommand.CommandText; foreach (DbParameter pt in scope.IDbCommand.Parameters) { Regex regex = new Regex(pt.ParameterName + @"\D"); commandText = regex.Replace(commandText, GetDbParameterValue(pt)); } } catch { throw; } finally { if (isSessionLocal) { session.CloseConnection(); } } if (!string.IsNullOrEmpty(commandText)) { if (this._outTypeConfig.OutType == OutSqlTextType.AutoLog) { _logger.Info(commandText); } else { Debug.WriteLine(commandText); Console.WriteLine(commandText); } } } } return(value); }