Итак, у вас есть таблица A, у которой идентификатор таблицы B является внешним ключом, и вы хотите отсортировать таблицу A по столбцу DisplayName таблицы B, а не по идентификатору таблицы B?
Единственный способ добиться этого - объединение.
SELECT tableA.* FROM tableA INNLER JOIN tableB ORDER BY tableB.DisplayName
В SubSonic2 вы можете сделать это и по-прежнему иметь возможность обновлять свои записи, если используете метод DB.Select (...). ExecuteCollection ().
Я думаю, что это возможно и с subsonic3.
Как бы то ни было, если вы не используете внешний ключ и отображаемое имя уникально, вам следует просто использовать это значение в качестве внешнего ключа.