Compartilhar via


Sqlmetal. exe (ferramenta de geração de código)

A ferramenta de linha de comando SqlMetal gera código e o mapeamento para o LINQ to SQL componentes da .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.

O arquivo SQLMetal está incluído no SDK do Windows que é instalado com o Visual Studio. Por padrão, o arquivo está localizado em drive: \Program Files\Microsoft SDKs\Windows\vn.nn\bin. Se você não instalar o Visual Studio, você também pode obter o arquivo SQLMetal baixando o O SDK do Windows.

Observação

Os desenvolvedores que usam Visual Studio também pode usar o Object Relational Designer para gerar classes de entidade.A abordagem de 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 atual da opção, digite sqlmetal /? em um prompt de comando do local instalado.

Opções de conexão

Opção

Descrição

/server:<name>

Especifica o nome do servidor de banco de dados.

/database:<name>

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

/user:<name>

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

/password:<password>

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

/conn:< seqüência de conexão >

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

Não inclua o Nome de arquivo na seqüência de conexão. Em vez disso, adicione o Nome de arquivo na linha de comando como arquivo de entrada. Por exemplo, a seguinte linha especifica "c:\northwnd.mdf" como o arquivo de entrada: sqlmetal /code:"c:\northwind.cs" /language:csharp "c:\northwnd.mdf".

/timeout:<seconds>

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

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 a saída como. dbml. Não pode ser usado com /map opção.

/code[: arquivo]

Envia a saída como 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:<language>

Especifica o idioma de código de origem.

Válido <language>: VB, csharp.

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

/namespace:<name>

Especifica o namespace do código gerado. Valor padrão: Nenhum 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 de base.

/pluralize

Automaticamente pluraliza ou singulariza nomes de classe e Membro.

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. mdf Express de SQL Server, um SQL Server Compact 3.5 o arquivo. sdf, ou um arquivo de intermediário. dbml.

Comentários

A funcionalidade de SqlMetal realmente envolve duas etapas:

  • Extraindo 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# de código-fonte, ou você pode produzir um arquivo de mapeamento XML.

Para extrair os metadados de um arquivo. mdf, você deve especificar o nome do arquivo. mdf afinal outras opções.

Se nenhum /server for especificado, localhost/sqlexpress é assumido.

Microsoft SQL Server 2005lanç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 como um aviso.

Para especificar um nome de arquivo de entrada, adicione o nome para a linha de comando, como o arquivo de entrada. Incluindo o nome de arquivo na seqüência de conexão (usando o /conn opção) não é suportada.

Exemplos

Gere um arquivo. dbml que contém metadados extraídos de SQL:

sqlmetal /dbml:mymeta.dbml de /database:northwind de /server:myserver

Gere um arquivo. dbml que inclui os metadados SQL extraído de um arquivo. mdf usando Express de SQL Server:

sqlmetal mydbfile.mdf de /dbml:mymeta.dbml

Gere um arquivo. dbml que contém metadados SQL extraídos do Express de SQL Server:

sqlmetal /server:. /database:northwind de /dbml:mymeta.dbml de \sqlexpress

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

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

Gere código-fonte do SQL metadados diretamente:

sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs /language:csharp

Observaçã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 de tabela são plural.Coincidentemente, as tabelas no banco de dados de exemplo Northwind já estão no plural.Portanto, você não vir esse trabalho de parte.Embora seja uma prática comum para tabelas de banco 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)

Referência

External Mapping Reference (LINQ to SQL)

Conceitos

Code Generation in LINQ to SQL