Нет, это не проблема с шаблонами Vb.Net.
Проблема в том, что вы не используете нормального поставщика LINQ. На основании вашего тега (дозвуковой) я предполагаю, что вы используете запрос LINQ to SQL.
Проблема состоит в том, что под капотом он пытается превратить ваш код в дерево выражений, которое затем переводится в SQL-подобный запрос. Настройки вашего проекта превращают сравнение строк в вызов во время выполнения VB. В частности, Microsoft.VisualBasic.CompilerServices.Operators.CompareString.
Рассматриваемый генератор LINQ2SQL или VB-компилятор (не могу вспомнить, где эта проверка выполняется в моей голове) не понимает, как перевести это в эквивалентный бит SQL. Следовательно это генерирует ошибку. Вам нужно использовать функцию сравнения строк, которая поддерживается LINQ2SQL.
РЕДАКТИРОВАТЬ Обновление
Похоже, что оператор CompareString должен поддерживаться в случае Linq2SQL. Есть ли у SubSonic другой провайдер, который не поддерживает этот перевод?