Como posso usar o LINQ em um modelo T4?
Pergunta
Estou usando o T4 para gerar algumas telas e código de camada média para um projeto e gostaria de usar o LINQ para simplificar alguns do meu código de modelo. No entanto, quando tento usar o LINQ, o modelo relata um erro de sintaxe.
Solução
Por padrão, no Visual Studio 2008 (e conforme usado na maioria dos exemplos on -line), o modelo é compilado com a estrutura 2.0, que não inclui o LINQ. (Ver Tópico do fórum MSDN)
Para resolver o problema, são necessárias três etapas:
- No atributo de idioma do seu modelo, especifique "C#v3.5" ou "VBV3.5" - Esta etapa não é necessária para o VS2010, onde o .NET 4.0 é sempre usado.
- Adicione uma diretiva de montagem para system.core.dll
- Importar o espaço para nome System.linq
Seu modelo agora ficará assim:
<#@ template language="C#v3.5" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
Agora você pode usar o LINQ e outros novos recursos de idioma em seu modelo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow