Partilhar via


Ferramenta de geração de código (SqlMetal.exe)

A ferramenta de linha de comando SqlMetal gera código e mapeamento para o LINQ to SQL componente das .NET Framework. Aplicando opções que aparecem posteriormente contidas neste tópico, você pode instruir o SqlMetal a executar várias ações diferentes que incluem o seguinte:

  • 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.

Por padrão, o arquivo SQLMetal está localizado em drive: \programa Files\Microsoft SDKs\Windows\vn. nn\bin.

ObservaçãoObservação:

Desenvolvedores que usam Visual Studio também pode usar o Object Relational Designer para gerar classes de entidade. A abordagem da linha de comando dimensiona bem para grandes bancos de dados. Como o SqlMetal é uma ferramenta de linha de comando, você pode usá-lo em um processo de criação.

sqlmetal [options] [<input file>]

Opções

Para exibir a lista mais corrente da opção, digite sqlmetal /? em um aviso de comando do local instalado.

Opções de conexão

Opção

Descrição

/server:<nome>

Especifica o nome do servidor de banco de dados.

/database:<nome>

Especifica o catálogo do banco de dados no servidor.

/user:<nome>

Especifica o ID de logon do usuário. Valor padrão: Use a autenticação do Windows.

/password:<senha>

Especifica a senha de logon. Valor padrão: Use a autenticação do Windows.

/conn:cadeia de conexão >

Especifica a seqüência de caracteres de conexão do banco de dados. Não pode ser usado com /server, /database, /user, ou /password opções.

Não inclua nome de arquivo na cadeia de conexão. Em vez disso, adicione nome de arquivo na linha de comando sistema autônomo o arquivo de entrada. Por exemplo, a seguinte linha especifica "c:\northwnd.mdf" sistema autônomo o arquivo de entrada: sqlmetal /code:"c:\northwind.cs" /language:csharp "c:\northwnd.mdf".

/timeout:<seconds>

Especifica o valor do time limite quando SqlMetal acessa o banco de dados. Valor padrão: 0 (ou seja, sem limite de time).

Opções de extração

Opção

Descrição

/views

Extrai os modos de exibição de banco de dados.

/functions

Extrai as funções de banco de dados.

/sprocs

Extrai os procedimentos armazenados.

Opções de saída

Opção

Descrição

/dbml[: arquivo]

Envia saída sistema autônomo .dbml. Não pode ser usado com /map opção.

/code[: arquivo]

Envia saída sistema autônomo código-fonte. Não pode ser usado com /dbml opção.

/map[: arquivo]

Gera um arquivo de mapeamento XML em vez de atributos. Não pode ser usado com /dbml opção.

Diversos

Opção

Descrição

/language:<linguagem>

Especifica o linguagem de código fonte.

Válido <linguagem>: VB, csharp.

Valor padrão: Derivado de extensão no nome de arquivo de código.

/namespace:<nome>

Especifica o namespace do código gerado. Valor padrão: Não há espaço para nome.

/context:<type>

Especifica o nome da classe de contexto de dados. Valor padrão: Derivado do nome do banco de dados.

/entitybase:<type>

Especifica a classe base das classes de entidade no código gerado. Valor padrão: Entidades não possuem nenhuma classe base.

/pluralize

Pluralizes ou nomes de classe e membro singularizes automaticamente.

Essa opção está disponível apenas nos EUA. Versão em inglês.

/serialization:<option>

Gera classes serializáveis.

Válido <option>: Nenhum, unidirecional. Valor padrão: Nenhum.

Para obter mais informações, consulte Serialization (LINQ to SQL).

Arquivo de entrada

Opção

Descrição

<input file>

Especifica um arquivo de .mdf SQL servidor Express, um SQL Server Compact 3.5 arquivo .sdf, ou arquivo .dbml intermediários.

Comentários

Funcionalidade SqlMetal realmente envolve duas etapas:

  • Extrair os metadados do banco de dados em um arquivo .dbml.

  • Gerando um arquivo de saída do código.

    Usando as opções de linha de comando apropriadas, você pode produzir Visual Basic ou código de fonte translation from VPE for Csharp, ou você pode produzir um arquivo de mapeamento XML.

Para extrair os metadados de um arquivo .mdf, especifique o nome do arquivo .mdf depois que todas as outras opções.

Se nenhum /server for especificado, localhost/sqlexpress supõe-se.

Microsoft SQL Server 2005 lança uma exceção se um ou mais das seguintes condições forem verdadeiras:

  • SqlMetal tenta extrair um procedimento armazenado que chama a mesmo.

  • O nível de aninhamento de um procedimento armazenado, função ou modo de exibição excede 32.

    SqlMetal captura essa exceção e reportá-lo sistema autônomo um aviso.

Para especificar um nome de arquivo de entrada, adicione o nome na linha de comando sistema autônomo o arquivo de entrada. Incluindo nome de arquivo na cadeia de conexão (usando o /conn Não há suporte para a opção).

Exemplos

gerar um arquivo .dbml que contém metadados extraídos do SQL:

sqlmetal /servidor:myserver /banco de dados:northwind /dbml:mymeta.dbml

gerar um arquivo .dbml que inclui metadados SQL extraído de um arquivo .mdf, usando o SQL servidor Express:

sqlmetal /dbml:mymeta.dbml mydbfile.mdf

gerar um arquivo .dbml que contém metadados extraídos do SQL do SQL servidor Express:

/ servidor sqlmetal:. \sqlexpress /dbml:mymeta.dbml /banco de dados:northwind

Gerar código-fonte a partir de um arquivo .dbml de metadados:

sqlmetal /namespace:nwind /code:nwind.cs /linguagem:csharp mymetal.dbml

Gerar código-fonte a partir de metadados SQL diretamente:

sqlmetal /servidor:myserver /banco de dados:northwind /namespace:nwind /code:nwind.cs /linguagem:csharp

ObservaçãoObservação:

Quando Você usa o /pluralize a opção com o banco de dados de exemplo Northwind, observe o seguinte comportamento. Quando SqlMetal faz os nomes de tipo de linha para tabelas, os nomes de tabela são singulares. Quando faz DataContext propriedades para tabelas, os nomes das tabelas são no plural. Por, as tabelas no banco de dados de exemplo Northwind já estão no plural. Portanto, você não vir esse trabalho parte. Embora seja prática comum para tabelas de bancos de dados de nome singulares, também é uma prática comum no .NET para coleções de nome no plural.

Consulte também

Tarefas

How to: Generate the Object Model in Visual Basic or C# (LINQ to SQL)

Conceitos

Code Generation in LINQ to SQL

Referência

External Mapping Reference (LINQ to SQL)