Когда я пытаюсь сохранить с помощью LINQ номер 5906560069339
в bigint
SQL колонке (Int64
LINQ), я получаю следующее сообщение об ошибке:Ошибка арифметического переполнения сохранение достаточно небольшого числа с помощью LINQ
Arithmetic overflow error converting expression to data type int. The statement has been terminated.
В частности:
var p = db.Table.Where(x => x.ID == id).FirstOrDefault();
p.Phone = 5906560069339;
db.SaveChanges();
В таблице Table
есть столбец Phone
как bigint, и все в актуальном состоянии. Поскольку я читал here, это число не так уж и велико, поэтому это не должно быть проблемой. Что не так?
Edit: Я знаю это лучше лечить обычные телефоны как строки (varchar
), но я не работаю с общими телефонными номерами (как вы можете видеть, с номером) и в любом случае я хотел бы знать, почему это не работает.
BigInt on SQL, он говорит Int64 на linq –
Предполагаю, что вы использовали Phone как свойство типа int в классе Table. –
Обычно номера телефонов должны храниться как строки. – petelids