Ответы пользователя по тегу Entity Framework
  • Почему In Memory Database не автогенерирует int свойство?

    @netcore Автор вопроса
    Решил по-другому в 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 как отыгрывать этот кейс

    Странно что в апишке не предусмотрели этот кейс обязательного использования инкрементации при инициализации, что бы юзеры не ломали голову часами
    Ответ написан
    Комментировать