Почему In Memory Database не автогенерирует int свойство?
Решил по-другому в OnModelBuilding

if (DataBase.IsInMemory())
var autoGenIntProperties = modelBuilder.Model.GetEntityTypes()
                .SelectMany(t => t.GetProperties())
                .Where(p => p.ClrType == typeof(int) && p.ValueGenerated != ValueGenerated.Never);

            foreach (var property in autoGenIntProperties)
                property.SetValueGeneratorFactory((p, t) => new InMemoryIntegerValueGenerator<int>(p.GetIndex()));

Это скорее всего потому что:
1. Ключи понятно как инкрементить, а кастомные поля нет
2. У каждой бд реализация этого кейса разная, по этому нужно явно указывать в InMemory как отыгрывать этот кейс

Странно что в апишке не предусмотрели этот кейс обязательного использования инкрементации при инициализации, что бы юзеры не ломали голову часами
Попробуйте вот это решение. 
https://stackoverflow.com/questions/47754939/how-t...

Кроме этого похоже что проблема повторяется, почитайте советы вот в этой ветке.