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.

Foi útil?

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:

  1. 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.
  2. Adicione uma diretiva de montagem para system.core.dll
  3. 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
scroll top