Проблема: первичный ключ базовой таблицы назван не так, как ключ в таблице fk.
Subsonic 3 не знает, как справиться с этим, что нормально, его бета. Поэтому я собирался изменить логику Html.ControlFor, чтобы просто взять таблицу и использовать имя pkname из этого:
var fk = db.FindTable(col.ForeignKeyTo.FriendlyName);
Однако .ForeignKeyTo имеет значение null. Где в шаблонах заполняется этот ITable?