Зарезервированные слова в c # могут быть обработаны в коде, добавив к ним символ '@'. Например,
public void Test(int if)
{
}
завершается с ошибкой компилятора, но
public void Test(int @if)
{
var something = @if;
}
просто отлично. Это работает и для имен свойств. Возможно, вы могли бы обновить ваши шаблоны T4, чтобы проверить список зарезервированных слов, и, если есть совпадение, добавьте символ «@» перед именем.
Что касается лучшего способа добавления этого в Subsonic, мне придется больше копать.