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)