Banco de Dados

28 ago, 2008

LINQ to SQL – Usando a ferramenta de linha de comando SQL Metal

Publicidade

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!