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