2009-05-13 14 views
12

Davvero una domanda stupida, mi spiace, ma non riesco a trovarla su google (sono sicuro che è in uno screencast o qualcosa da qualche parte). Ho un diagramma DBML (classi linq2sql) e ho cambiato il database sottostante. In VS2008, come faccio a "aggiornare" il diagramma? Non c'è nessuna vista -> Aggiorna o RightClick-> Aggiorna o Aggiorna opzione.Aggiornamento di un diagramma DBML?

Allo stato attuale, devo ricreare l'intera classe linq2sql ogni volta che aggiorno il db sottostante.

risposta

8

fare clic destro e selezionare "Esegui strumento personalizzato" (in Esplora soluzioni dbml file)

+1

Beh, questo è un po 'non intuitivo. Grazie! – Chris

+0

diavolo si, mi ci è voluto un po 'di tempo per scoprire che "strumento personalizzato" è in realtà la cosa che genera i calessi :) –

+4

Questo non aggiorna il file DBML con le modifiche del database. Attiva il generatore di codice che genera codice C# o VB dal file DBML. Le modifiche ai DB devono ancora essere propagate in un modo o nell'altro al file DBML - vedere la mia risposta. – KristoferA

5

Se si desidera portare modifiche al database nel vostro diagramma DBML allora si può:

a) rimuovere le entità modificate dal diagramma del designer e trascinarli nuovamente. Perderai eventuali personalizzazioni (ad es. Modifiche al nome della classe e della proprietà, ecc.).

b) aggiornare manualmente il diagramma, l'aggiunta/rimozione di classi, proprietà utente, ecc

c) usando uno strumento di terze parti in grado di confrontare e aggiornare il file DBML con il database sottostante. Uno di questi strumenti è il mio componente aggiuntivo, Huagati DBML/EDMX Tools. Aggiunge un sacco di funzioni al progettista L2S in VS2008 e VS2010, inclusi aggiornamento/sincronizzazione, confronto, rinominazione di massa, applicazione delle regole del nome, documentazione da proprietà estese/indici/ecc., Più "viste" per schema dbml, ecc.

+0

Se/quando aggiorni manualmente il diagramma aggiungendolo nella vista (si potrebbe anche modificare il file .xml in qualche editor di testo), assicurati di non solo impostare 'name', ma anche di impostare' source' (su la colonna appropriata). Ciò impedirà questo messaggio di errore: 'Un nome di oggetto o colonna è mancante o vuoto. Per le istruzioni SELECT INTO, verifica che ogni colonna abbia un nome –

1

Per prima cosa è necessario aggiornare il file .sdf nel file .dbml. L'ho fatto aprendo il prompt cmd e indirizzando il percorso uguale al percorso SqlMetal.exe. successivamente cambia la directory in cui si trova il database .sdf, quindi digita "SqlMetal.exe (nameofdatabase) .sdf /dbml:(nameofdatabase).dbml". Dopo questo fare clic destro e selezionare "Esegui strumento personalizzato" (in Solution Explorer su file dbml). Questo dovrebbe farlo (almeno per me lo ha fatto).

Problemi correlati