Tu cuadrado encajando un agujero redondo aquí.
Su respuesta PUEDE ser tan fácil como Contact.Phones.OrderBy ( @p => @p.SortOrder ) y luego ocuparse de todos sus teléfonos en un método Contact.SetPhone (phone, order) que puede abarcar cualquier lógica personalizada que desee.
Además, dado que se trata de una lógica comercial y de vista, su tienda de persistencia no debería estar al tanto de lo que está sucediendo.