Как вы сказали, операция INSERT происходит нормально. Затем Dapper Extensions извлекает вновь сгенерированное значение идентификатора и пытается присвоить его свойству Product.Id
.
Теперь тип возвращаемого значения (значение столбца) - int
со знаком. Тип данных свойства Id
- uint
, который не подписан. Хотя длина обоих типов данных одинакова, тип данных (подписанных и неподписанных), которые они могут содержать, различен, и, следовательно, ошибка.
Вам следует изменить тип данных вашего свойства Id
на int
, как показано ниже:
public int Id { get; set; }
Как вы сказали в своем ответе, вы должны сохранить собственность uint
, вот что я предлагаю:
Добавьте дополнительное свойство в свой класс, как держатель / копию, как показано ниже:
public class Product {
[Column("id")]
public int Id { get; set; }//Map this as Identity.
public uint IdCopy { get { return Convert.ToUInt32(Id); } }//Readonly; Exclude this from mapping
}