Е, тези анотации на данни трябва да свършат работа, може би е нещо свързано с доставчика на PostgreSQL.
От документацията на EF Core:
В зависимост от използвания доставчик на база данни, стойностите могат да бъдат генерирани от клиента до EF или в базата данни. Ако стойността е генерирана от базата данни, тогава EF може да присвои временна стойност, когато добавите обекта към контекста. След това тази временна стойност ще бъде заменена от стойността, генерирана от базата данни по време на
SaveChanges
.
Можете също да опитате с тази конфигурация на Fluent Api:
modelBuilder.Entity<Foo>()
.Property(f => f.Id)
.ValueGeneratedOnAdd();
Но както казах по-рано, мисля, че това е нещо свързано с доставчика на DB. Опитайте да добавите нов ред към вашата DB и проверете по-късно дали е генерирана стойност за Id
колона.