/// <summary> /// 生成缓存键 /// 依据哈希字符串原来 /// 将参数转换为字节数组,然后做SHA256处理 /// </summary> /// <param name="paramterCollection"></param> /// <returns></returns> public string GetKey(string functionName, string methodName, string sqlText, DbNetParamterCollection paramterCollection) { Dictionary <string, object> paramterValues = new Dictionary <string, object>(); foreach (var item in paramterCollection) { if (item.CacheKeyType == CacheKeyType.Bind) { paramterValues.Add(item.Name, item.Value); } } //二进制序列化成字节数组 BinaryFormatter binaryFormatter = new BinaryFormatter(); byte[] data = null; using (MemoryStream mstream = new MemoryStream()) { binaryFormatter.Serialize(mstream, paramterValues); data = mstream.ToArray(); } //哈希处理 SHA256 sha = new SHA256CryptoServiceProvider(); data = sha.ComputeHash(data); data = Encoding.UTF8.GetBytes(string.Format(functionName, methodName, sqlText)).Concat(data).ToArray(); data = sha.ComputeHash(data); StringBuilder sb = new StringBuilder(); foreach (var b in data) { sb.Append(b.ToString(X_TWO)); } return(sb.ToString()); }
public DbNetCommand(string _sqlText, string _connectionString, DbNetParamterCollection _paramters, string _commandType, DbNetIsolationLevel _isolationLevel) { SqlText = _sqlText; ConnectionString = _connectionString; Paramters = _paramters; CommandType = _commandType; IsolationLevel = _isolationLevel; }
public string RouteDbConnection(string routeName, string moduleName, string methodName, DbNetParamterCollection paramters, out IDbNetProvider dbProvider) { if (string.IsNullOrEmpty(_connectionString)) { throw new Exception("默认数据库连接字符串未设置"); } dbProvider = _dbProvider; return(_connectionString); }