示例#1
0
 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;
 }
示例#2
0
        //获取仅由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);
        }