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

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

Microsoft.Practices.EnterpriseLibrary.Data.Database db = /* code omitted */; db.AddOutParameter(command, "@ParamName", DbType.Int32, 8); 

是否有一种干净的方法来获取DbType.Int32的长度,这是DbType.Int32的最后一个参数所需要的?

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

我不确定指定int32的大小( 8 )的帽子是有道理的。 例如,如果它应映射到指定大小为8的Oracle Number ,则它应该是DbType.Decimal而不是Int32。

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