Cóż, te adnotacje danych powinny załatwić sprawę, może jest to coś związanego z dostawcą PostgreSQL.
Z dokumentacji EF Core:
W zależności od używanego dostawcy bazy danych wartości mogą być generowane po stronie klienta przez EF lub w bazie danych. Jeśli wartość jest generowana przez thedatabase, EF może przypisać wartość tymczasową podczas dodawania jednostki do kontekstu. Ta tymczasowa wartość zostanie następnie zastąpiona wartością wygenerowaną przez bazę danych podczas SaveChanges
.
Możesz również spróbować z tą konfiguracją Fluent Api:
modelBuilder.Entity<Foo>()
.Property(f => f.Id)
.ValueGeneratedOnAdd();
Ale jak powiedziałem wcześniej, myślę, że jest to coś związanego z dostawcą DB. Spróbuj dodać nowy wiersz do bazy danych i sprawdź później, czy została wygenerowana wartość do Id
kolumna.