Ihr Quadrat steckt hier ein rundes Loch fest.
Ihre Antwort KANN so einfach sein wie Contact.Phones.OrderBy ( @p => @p.SortOrder ) und sich dann um alle Ihre Telefone in einer Contact.SetPhone( phone, order ) -Methode zu kümmern, die jede beliebige benutzerdefinierte Logik umfassen kann.
Da es sich um Geschäfts- und Ansichtslogik handelt, sollte Ihr Persistenzspeicher nicht wissen, was vor sich geht.