Skip to content

C#客户端 Hints说明

Yenan Wang edited this page Mar 8, 2017 · 2 revisions

简介

  • Hints是针对现有API功能的一种扩展,以重载方法的形式存在,以下Hints支持所有包含IDictionary hints参数的重载方法。

Sql相关

Timeout

  • 针对每个数据库请求设定一个超时时间(单位:秒)

IDictionary hints = new Dictionary<String, Object>();

hints.Add(DALExtStatementConstant.TIMEOUT, 1); //seconds

var result = dao.SelectDataTable("select 1", null, hints);

SQL

  • 获取执行的SQL语句

hints.Add(DALExtStatementConstant.SQL, null);

Retrieve Schema

  • 获取DataTable数据时,同时获取Schema

hints.Add(DALExtStatementConstant.RETRIEVE_SCHEMA, null);

Disable Constraints

  • 禁用DataTable中Schema的约束

hints.Add(DALExtStatementConstant.DISABLE_CONSTRAINTS, null);

Set Null

  • 执行插入或更新操作时不忽略null值

hints.Add(DALExtStatementConstant.SETNULL, null);

Lock

  • Sql Server的Table Hints,具体选项可以参考Table Hints

hints.Add(DALExtStatementConstant.LOCK, "NOLOCK");

Sharding相关

Shard Id

  • 在DB Sharding模式下,在某个指定的DB Shard上执行数据库操作

hints.Add(DALExtStatementConstant.SHARDID, "0");

Table Id

  • 在Table Sharding模式下,在某个指定的Table Shard上执行数据库操作

hints.Add(DALExtStatementConstant.TABLEID, "0");

Shard Ids

  • 在DB Sharding模式下,在某些指定的DB Shards上执行数据库操作

IList<String> shards = new List<String> { "0", "1" };

hints.Add(DALExtStatementConstant.SHARD_IDS, shards);

Table Ids

  • 在Table Sharding模式下,在某些指定的Table Shards上执行数据库操作

IList<String> shards = new List<String> { "0", "1" };

hints.Add(DALExtStatementConstant.TABLE_IDS, shards);

Shard Table Dict

  • 当同时启用了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);

Shard Column Value

  • 在Sharding模式下,指定Shard Column的值,Dal Client会根据当前Sharding策略自动计算出实际的Shard Id或Table Id

hints.Add(DALExtStatementConstant.SHARD_COLUMN_VALUE, 100);

Map

  • 在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);

Clone this wiki locally