internal virtual void AddSqlStatmentSetting(SqlStatementSetting statementSetting, bool replaceExists) { if (this.statements.ContainsKey(statementSetting.Name) && !replaceExists) { return; } if (string.IsNullOrEmpty(statementSetting.DataStorageName)) { statementSetting.DataStorageName = this.Setting.DataStorageContext.DefaultStorageName; } this.statements[statementSetting.Name] = statementSetting; }
//获取仅由Sql语句组成的Sql状态配置 protected internal virtual IStatementSetting GetSqlStatementSetting(string sql, CommandType sqlType, string storageName) { if (string.IsNullOrEmpty(storageName)) { storageName = this.Setting.DataStorageContext.DefaultStorageName; } var statementName = HashHelper.Hash($"{storageName}:{sql}", "md5"); if (!this.statements.TryGetValue(statementName, out var statementSetting)) { lock (statementName) { if (!this.statements.TryGetValue(statementName, out statementSetting)) { statementSetting = new SqlStatementSetting(statementName, sql, storageName) { CommandType = sqlType }; this.statements.Add(statementName, statementSetting); } } } return(statementSetting); }