This is due to breaking changes in EF Core 3.0 which can be found under this link:
https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes#string-and-byte-array-keys-are-not-client-generated-by-default
The problem can be solved by assigning a key manually like this:
// assign GUID to Id
user.Id = Guid.NewGuid().ToString();
var result = await _userManager.CreateAsync(user, password);
Another solution would be the following according to Microsoft:
The pre-3.0 behavior can be obtained by explicitly specifying that the
key properties should use generated values if no other non-null value
is set. For example, with the fluent API:
modelBuilder
.Entity<Blog>()
.Property(e => e.Id)
.ValueGeneratedOnAdd();
Or with data annotations:
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public string Id { get; set; }