Dapper对SQL Server支持很好,但对于Oracle有些用法不一样,需要自己进行特殊处理。

1、首先要自定义一个Oracle参数类

 1  public class OracleDynamicParameters : SqlMapper.IDynamicParameters
 2     {
 3         private readonly DynamicParameters dynamicParameters = new DynamicParameters();
 4 
 5         private readonly List<OracleParameter> oracleParameters = new List<OracleParameter>();
 6 
 7         public void Add(string name, OracleDbType oracleDbType, ParameterDirection direction, object value = null, int? size = null)
 8         {
 9             OracleParameter oracleParameter;
10             if (size.HasValue)
11             {
12                 oracleParameter = new OracleParameter(name, oracleDbType, size.Value, value, direction);
13             }
14             else
15             {
16                 oracleParameter = new OracleParameter(name, oracleDbType, value, direction);
17             }
18 
19             oracleParameters.Add(oracleParameter);
20         }
21 
22         public void Add(string name, OracleDbType oracleDbType, ParameterDirection direction)
23         {
24             var oracleParameter = new OracleParameter(name, oracleDbType, direction);
25             oracleParameters.Add(oracleParameter);
26         }
27 
28         public void AddParameters(IDbCommand command, SqlMapper.Identity identity)
29         {
30             ((SqlMapper.IDynamicParameters)dynamicParameters).AddParameters(command, identity);
31 
32             var oracleCommand = command as OracleCommand;
33 
34             if (oracleCommand != null)
35             {
36                 oracleCommand.Parameters.AddRange(oracleParameters.ToArray());
37             }
38         }
39     }
OracleDynamicParameters

相关文章:

  • 2021-12-21
  • 2022-12-23
  • 2021-09-12
  • 2021-10-18
  • 2021-07-20
  • 2022-12-23
  • 2021-08-15
  • 2022-12-23
猜你喜欢
  • 2022-01-30
  • 2022-12-23
  • 2022-02-19
  • 2022-12-23
  • 2021-09-15
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案