AddOutParameter - 查找DBType.Int32长度的非魔数方式

Ric*_*ett 6 c# magic-numbers

我在下面的代码中有一个神奇的数字......

Microsoft.Practices.EnterpriseLibrary.Data.Database db = /* code omitted */;

db.AddOutParameter(command, "@ParamName", DbType.Int32, 8);
Run Code Online (Sandbox Code Playgroud)

是否有一种干净的方式来获得DbType.Int32最后一个参数所需的长度AddOutParameter

Han*_*son 4

不确定你所说的长度是什么意思。它是一个 32 位 int,因此它有 4 个字节,可以是 10 位数字,如本MSDN页面的引用中所述。表示带符号的 32 位整数的整数类型,其值介于 -2147483648 和 2147483647 之间。

我不确定8为 int32 指定大小( )是否有意义。例如,如果它应该映射到Number指定大小为 8 的 Oracle,那么它可能应该是DbType.DecimalInt32,而不是 Int32。

我建议考虑完全删除 8,因为它是一个输出参数,我认为它不会影响任何东西。