Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

SqlMetal.exe (strumento per la generazione del codice)

Lo strumento da riga di comando SqlMetal genera codice e mapping per il componente LINQ to SQL di .NET Framework. Mediante l'applicazione delle opzioni riportate più avanti in questo argomento è possibile utilizzare SqlMetal per eseguire diverse operazioni, fra cui:

  • A partire da un database, generare codice sorgente e attributi di mapping oppure un file di mapping.

  • A partire da un database, generare un file .dbml (Database Markup Language) intermedio da personalizzare.

  • A partire da un file .dbml, generare codice e attributi di mapping oppure un file di mapping.

Viene installato automaticamente con Visual Studio. Per impostazione predefinita, il file si trova in drive:\Programmi\Microsoft SDKs\Windows\vn.nn\bin. Se non si installa Visual Studio, è possibile ottenere il file SQLMetal anche tramite il download di Windows SDK.

Nota Nota

Gli sviluppatori che utilizzano Visual Studio possono utilizzare anche Object Relational Designer per generare classi di entità. Quando si utilizzano database di grandi dimensioni, l'approccio basato sulla riga di comando rappresenta la scelta più adeguata. In quanto strumento da riga di comando, SqlMetal può essere utilizzato in un processo di compilazione.

Per eseguire lo strumento, utilizzare il prompt dei comandi per sviluppatori o il prompt dei comandi di Visual Studio in Windows 7. Per ulteriori informazioni, vedere Prompt dei comandi di Visual Studio. Al prompt dei comandi digitare quanto segue:

sqlmetal [options] [<input file>]

Per visualizzare l'elenco di opzioni più aggiornato, digitare sqlmetal /? al prompt dei comandi dal percorso di installazione.

Opzioni di connessione

Opzione

Descrizione

/server: <name>

Specifica il nome del server di database.

/database: <name>

Specifica il catalogo del database contenuto nel server.

/user: <name>

Specifica l'ID utente di accesso. Valore predefinito: autenticazione di Windows.

/password: <password>

Specifica la password di accesso. Valore predefinito: autenticazione di Windows.

/conn: <connection string>

Specifica la stringa di connessione al database. Non può essere utilizzata con le opzioni /server, /database, /user o /password.

Non includere il nome file nella stringa di connessione. Aggiungere invece il nome file alla riga di comando come file di input. Nella riga seguente, ad esempio, viene specificato "c:\northwnd.mdf" come file di input: sqlmetal /code:"c:\northwind.cs" /language:csharp "c:\northwnd.mdf".

/timeout: <seconds>

Specifica il valore di timeout quando SqlMetal accede al database. Valore predefinito: 0 (ovvero nessun limite di tempo).

Opzioni di estrazione

Opzione

Descrizione

/views

Estrae viste di database.

/functions

Estrae funzioni di database.

/sprocs

Estrae stored procedure.

Opzioni di output

Opzione

Descrizione

/dbml [:file]

Invia l'output come file .dbml. Non può essere utilizzata con l'opzione /map.

/code [:file]

Invia l'output come codice sorgente. Non può essere utilizzata con l'opzione /dbml.

/map [:file]

Genera un file di mapping XML anziché gli attributi. Non può essere utilizzata con l'opzione /dbml.

Varie

Opzione

Descrizione

/language: <language>

Specifica il linguaggio del codice sorgente.

Valori validi per <language>: vb, csharp.

Valore predefinito: derivato dall'estensione nel nome file del codice.

/namespace: <name>

Specifica lo spazio dei nomi del codice generato. Valore predefinito: nessuno spazio dei nomi.

/context: <type>

Specifica il nome della classe del contesto dati. Valore predefinito: derivato dal nome del database.

/entitybase: <type>

Specifica la classe base delle classi di entità nel codice generato. Valore predefinito: le entità non dispongono di classe base.

/pluralize

Rende automaticamente plurali o singolari i nomi delle classi e dei membri.

Questa opzione è disponibile solo nella versione in lingua inglese degli Stati Uniti.

/serialization: <option>

Genera classi serializzabili.

Valori validi per <option>: None, Unidirectional. Valore predefinito: None.

Per ulteriori informazioni, vedere Serializzazione [LINQ to SQL].

File di input

Opzione

Descrizione

<input file>

Specifica un file .mdf di SQL Server Express, un file .sdf di SQL Server Compact 3.5 oppure un file .dbml intermedio.

Il funzionamento di SqlMetal prevede di fatto due passaggi:

  • Estrazione dei metadati del database in un file .dbml.

  • Generazione di un file di output di codice.

    Le opzioni della riga di comando, se utilizzate correttamente, consentono di creare codice sorgente Visual Basic o C# oppure un file di mapping XML.

Per estrarre i metadati da un file .mdf è necessario aggiungere il nome di tale file in coda a tutte le altre opzioni specificate.

Se l'opzione /server non viene specificata, viene presunto l'uso dell'opzione localhost/sqlexpress.

Microsoft SQL Server 2005 genera un'eccezione se almeno una delle condizioni seguenti è vera:

  • SqlMetal tenta di estrarre una stored procedure che chiama se stessa.

  • Il livello di annidamento di una stored procedure, di una funzione o di una vista è maggiore di 32.

    SqlMetal rileva questa eccezione e la segnala come avviso.

Per specificare un nome file di input, aggiungere il nome nella riga di comando come file di input. Non è possibile includere il nome file nella stringa di connessione mediante l'opzione /conn.

Genera un file .dbml che contiene metadati SQL estratti:

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

Genera un file .dbml che contiene metadati SQL estratti da un file .mdf tramite SQL Server Express:

sqlmetal /dbml:mymeta.dbml mydbfile.mdf

Genera un file .dbml che contiene metadati SQL estratti da SQL Server Express:

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

Genera codice sorgente a partire da un file di metadati .dmbl:

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

Genera codice sorgente direttamente da metadati SQL:

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

Nota Nota

Quando si utilizza l'opzione /pluralize con il database di esempio Northwind, si verifica il comportamento seguente. Quando SqlMetal crea nomi di tipo riga per le tabelle, i relativi nomi sono al singolare. Quando crea proprietà DataContext per le tabelle, i relativi nomi sono invece al plurale. Per coincidenza, i nomi delle tabelle contenute nel database di esempio Northwind sono già al plurale. Pertanto, l'opzione di pluralizzazione di fatto non viene utilizzata. Di norma le tabelle di database vengono denominate al singolare, mentre le raccolte .NET vengono denominate al plurale.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft