限制长的大小?

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
}

这样做的一个好处是,很明显这个数字有一些特殊的规则。但是使用起来会比较麻烦,以后换数据库可能会出问题