Я нашел эту странную ошибку.
У меня есть система журналирования, которая регистрирует все изменения в базе данных.
Я использую это, чтобы получить ключи отредактированных или добавленных значений. Краткое объяснение:
var changes = ChangeTracker.Entries()
.Where(p => p.State == EntityState.Modified || p.State == EntityState.Added).ToList();
foreach (var change in changes) {
...
var primaryKeys = change.Properties.Where(key => key.Metadata.IsPrimaryKey())
.ToDictionary(key => key.Metadata.Name,
key => key.CurrentValue.ToString());;
...
}
А когда добавляется какая-то строка и ключ равен int , key.CurrentValue
всегда равен -2147482647
.
Это странно, потому что int минимальное значение -2147483648
, поэтому разность 1001
.
Еще раз:
key.CurrentValue: -214748 2 64 7
Int минимальный: -214748 3 64 8
У вас есть идеи, почему это происходит?