当我尝试在5906560069339
sql列(bigint
linq)中使用linq保存数字Int64
时,出现以下错误:
将表达式转换为数据类型int的算术溢出错误。声明已经终止。
具体做法是:
var p = db.Table.Where(x => x.ID == id).FirstOrDefault();
p.Phone = 5906560069339;
db.SaveChanges();
表Table
将列Phone
作为bigint,一切都是最新的。正如我读过here这个数字并不是那么大,所以它不应该是一个问题。怎么了?
编辑:我知道最好将常规手机视为字符串(varchar
),但我不使用普通电话号码(如您所见)我想知道为什么这不起作用。
答案 0 :(得分:0)
找到它。
我说的一切都是正确的:
Bigint
。Int64
- Long
但我没有说明该表可能具有的触发器。一些 超级好 开发人员决定每当使用 <对表 另一个 表进行更新时em>相同的 列可以用作中介。我删除了触发器(因为它是愚蠢)并且它有效。
所以结论是: