I worked out eventually that the reason it isn't working is because EF Core only updates the entity with the auto-incremented ID if the ID in the model is the default value for the type. The default value for EntityId is null, so the value of 0 I had given it told EF Core that it didn't need to be updated.
The best solution I have found to this so far is to create a backing field for the EntityId and assign to to a primitive type (int in this instance). Since EF Core does not allow null primary keys, this was all I could come up with at this stage.