The reason this was changed is the following
In v2, an entity was mapped to 1 target in 1 database. This means that the ordinal order of the fields in the entity would be the same as the target fields in the mapped table. So if the table looked like:
ID
Foo
Field1
Bar
The entity fields mapped onto these fields would be in the same order.
In v3, an entity can be mapped onto multiple targets (1 target per database). this means that if you have two relational model data storages in your project (SQLServer and Oracle for example), it gives a problem if the situation is this:
SQL Server:
ID
Foo
Field1
Bar
Oracle:
BAR
ID
FIELD1
FOO
In which order should the fields in the entity be stored? If we pick one, or the first one, and things change, e.g. we picked 'SQL Server' and you remove that from the project, what's the order become after that?
So we decided that the order in which fields are stored is undefined: there's no ordering, other than alphabetical. So all fields used in the generated code are sorted alphabetical, ascending.
This won't change in the future, because the reason why we made this change is not going away