-
Notifications
You must be signed in to change notification settings - Fork 447
C#客户端 Hints说明
- Hints是针对现有API功能的一种扩展,以重载方法的形式存在,以下Hints支持所有包含IDictionary hints参数的重载方法。
- 针对每个数据库请求设定一个超时时间(单位:秒)
IDictionary hints = new Dictionary<String, Object>();
hints.Add(DALExtStatementConstant.TIMEOUT, 1); //seconds
var result = dao.SelectDataTable("select 1", null, hints);
- 获取执行的SQL语句
hints.Add(DALExtStatementConstant.SQL, null);
- 获取DataTable数据时,同时获取Schema
hints.Add(DALExtStatementConstant.RETRIEVE_SCHEMA, null);
- 禁用DataTable中Schema的约束
hints.Add(DALExtStatementConstant.DISABLE_CONSTRAINTS, null);
- 执行插入或更新操作时不忽略null值
hints.Add(DALExtStatementConstant.SETNULL, null);
- Sql Server的Table Hints,具体选项可以参考Table Hints
hints.Add(DALExtStatementConstant.LOCK, "NOLOCK");
- 在DB Sharding模式下,在某个指定的DB Shard上执行数据库操作
hints.Add(DALExtStatementConstant.SHARDID, "0");
- 在Table Sharding模式下,在某个指定的Table Shard上执行数据库操作
hints.Add(DALExtStatementConstant.TABLEID, "0");
- 在DB Sharding模式下,在某些指定的DB Shards上执行数据库操作
IList<String> shards = new List<String> { "0", "1" };
hints.Add(DALExtStatementConstant.SHARD_IDS, shards);
- 在Table Sharding模式下,在某些指定的Table Shards上执行数据库操作
IList<String> shards = new List<String> { "0", "1" };
hints.Add(DALExtStatementConstant.TABLE_IDS, shards);
- 当同时启用了DB Sharding和Table Sharding模式时,在这些指定的分片上执行数据库操作
- DB和Table的关系为一对多
IDictionary<String, IList<String>> dict = new Dictionary<String, IList<String>> { { "0", new List<String> { "0", "1" } } };
hints.Add(DALExtStatementConstant.SHARD_TABLE_DICT, dict);
- 在Sharding模式下,指定Shard Column的值,Dal Client会根据当前Sharding策略自动计算出实际的Shard Id或Table Id
hints.Add(DALExtStatementConstant.SHARD_COLUMN_VALUE, 100);
- 在Sharding模式下,指定多个Shard Column的值,当有一个Shard Column匹配时,Dal Client会根据当前Sharding策略自动计算出实际的Shard Id或Table Id
IDictionary<String, Object> map = new Dictionary<String, Object> { { "OrderId", 100 } };
hints.Add(DALExtStatementConstant.MAP, map);