O LINQ to SQL possui um ferramenta de linha de comando chamada SQL Metal que permite gerar classes de entidades, propriedades e associações de forma automática. É mais uma opção, visto que você pode obter o mesmo resultado usando o Editor Visual do LINQ ou via código.
A localização padrão do SQLMetal é: \Programa Arquivos\Microsoft SDKs\Windows\vn.nn\Bin
Às vezes ela pode ser a única opção disponível, e por isso é bom conhecer um pouco sobre ela. Conhecendo as opções disponíveis, você pode usar o SQL Metal para efetuar uma das seguintes ações:
- A partir de um banco de dados, gerar código-fonte e atributos de mapeamento ou um arquivo de mapeamento;
- A partir de um banco de dados, gerar um arquivo intermediário de linguagem de marcação de banco de dados (.dbml) para customização;
- A partir de um arquivo .dbml, gerar código e atributos de mapeamento ou um arquivo de mapeamento;
O Sql Metal atua em duas etapas:
- Extraindo os metadados do banco de dados em um arquivo .dbml.
- Gerando um código arquivo de saída.
Para usar a ferramenta, você precisa conhecer as opções disponíveis:
Usando as opções de linha de comando apropriadas, você pode produzir Visual Basic ou código de origem do C#, ou você pode produzir um arquivo de mapeamento XML.
Vejamos a seguir um exemplo de comando usando o SQLMetal para gerar classes de entidades para acessar um hipotético banco de dados Cadastro no SQL Server 2005 usando a segurança integrada do Windows:
sqlmetal /server:Macoratti /database:Cadastro /pluralize /code:Cadastro.cs
Se você precisar usar a segurança do SQL Server, deverá incluir mais duas opções à linha de comando acima definindo o usuário e a senha:
sqlmetal /server:Macoratti /database:Cadastro /user:sa /password:secret /pluralize /code:Cadastro.cs
A seguir um outro exemplo de linha de comando para gerar as classes de entidades apenas definindo o caminho do banco de dados .MDF :
sqlmetal /pluralize /code:Cadastro.cs c:\dados\Cadastro.mdf
Um exemplo bem prático de uso do SQL Metal é se você estiver usando as versões Express e precisar gerar um arquivo DBML para um banco de dados que não reside na sua máquina local.
Para realizar tal tarefa você pode usar o SQL Metal para gerar o mapeamento para um arquivo SQL Server em um servidor remoto. Os passos necessárias são:
Passo 1:
Abra um prompt de linha de comando e navegue até: \Programa Arquivos\Microsoft SDKs\Windows\vn.nn\Bin ; (vn.nn e a sua versão)
Passo 2:
Tenha à mão a string de conexão definida para efetuar a conexão;
Passo 3:
Execute a seguinte linha de comando no prompt : sqlmetal /conn:”sua_string_conexão” /dbml:NomeBancodeDados.dbml
Outra dica de uso para esta ferramenta é gerar o mapeamento para um banco de dados do SQL Server Compact 3.5. (Aguarde em breve artigo sobre o assunto).
Uma boa novidade é que o SQL Metal ganhou uma versão com uma interface gráfica – SQL Metal Open Source User Interface que pode ser configurada para ser usada de forma integrada com o Visual Studio.
Talvez você nunca precise usar a ferramenta SQL Metal, mas é bom prevenir e pelo menos saber que ela existe.
Até o próximo artigo!