Votre carré fixe un trou rond ici.
Votre réponse PEUT être aussi simple que Contact.Phones.OrderBy ( @p => @p.SortOrder ) puis prendre soin de tous vos téléphones dans une méthode Contact.SetPhone( phone, order ) qui peut englober la logique personnalisée que vous souhaitez.
De plus, comme il s'agit d'une logique commerciale et de vue, votre magasin de persistance ne devrait pas être au courant de ce qui se passe.