При соединении шаблона T4 я добавил простое лямбда-выражение:
<#=string.Join(",", updateFields.ConvertAll(field => field.Name).ToArray())#>
Это заставляет шаблону не удаваться генерировать с ошибкой:
Compiling transformation: Invalid expression term '>'
На строке с лямбда-выражением.
Это было проверено за пределами шаблона и хорошо работает. Разве T4 не поддерживает работу с лямбда-выражениями? В противном случае есть ли какие-либо другие функции языка, которые не поддерживаются в контексте шаблона T4?
Спасибо!
Если вы используете T4 в Visual Studio 2008, убедитесь, что у вас установлена версия компилятора C # 3.5 в директиве шаблона . По умолчанию используется версия 2.0.
В качестве обходного пути вы можете поместить этот код во внешнюю библиотеку классов, которую затем можно будет вызвать из шаблона T4. Мне приходилось делать это несколько раз. Это не идеально, но работает.