限制长的大小?
Limit the size of a long?
我在 (oracle) 数据库中有一个 table,它有一列 NUMBER(12)
。我不能在 C# 中使用 int
,因为它很小,所以我使用 long
。但是 long
对于这个 table 列来说太大了。在将数据发送到数据库之前,有什么方法可以限制 long
的大小吗?否则我会收到错误 ORA-21525,因为我超出了 table 列的大小。发送到数据库的数据实际上是一个List<long>
.
最明显的解决方案是使用限制数字值范围的自定义数字类型。像
public readonly struct Number12{
public long Value {get;}
public Number12(long num){
if(num > 999999999999 || num < -999999999999 ){
throw new ArgumentException("number out of rage " +num);
}
Value = num;
}
// Add operators, conversions etc
}
这样做的一个好处是,很明显这个数字有一些特殊的规则。但是使用起来会比较麻烦,以后换数据库可能会出问题
我在 (oracle) 数据库中有一个 table,它有一列 NUMBER(12)
。我不能在 C# 中使用 int
,因为它很小,所以我使用 long
。但是 long
对于这个 table 列来说太大了。在将数据发送到数据库之前,有什么方法可以限制 long
的大小吗?否则我会收到错误 ORA-21525,因为我超出了 table 列的大小。发送到数据库的数据实际上是一个List<long>
.
最明显的解决方案是使用限制数字值范围的自定义数字类型。像
public readonly struct Number12{
public long Value {get;}
public Number12(long num){
if(num > 999999999999 || num < -999999999999 ){
throw new ArgumentException("number out of rage " +num);
}
Value = num;
}
// Add operators, conversions etc
}
这样做的一个好处是,很明显这个数字有一些特殊的规则。但是使用起来会比较麻烦,以后换数据库可能会出问题