2012-11-10 22 views
15

Sto utilizzando VS 2012 e EF 5. Ho un database esistente che voglio creare classi POCO dal database esistente. Ho seguito i passaggi per aggiungere un modello di dati di entità ADO.NET al mio progetto. Ho seguito la procedura guidata per utilizzare un database esistente. Ha quindi creato i file edmx e tt con il designer aperto. Tuttavia, voglio creare gli oggetti POCO e usarli. Il sito di Microsoft afferma che il generatore di Entity Framework di POCO è obsoleto e dovrei usare il generatore di DBContext. Non riesco a capire i passaggi che uso per generare le classi POCO. Vedo solo il designer edmx. Non voglio nemmeno un file edmx, ma solo classi POCO. Come posso ottenere le classi POCO da creare da un database esistente utilizzando EF 5 e VS 2012?Entity Framework 5 - Come generare classi POCO dal database esistente

+0

VS2012 genera le entità POCO e DbContext per impostazione predefinita. Non funziona per te? – Pawel

risposta

14

Usa EF 5.x DbContext Fluent Generator

È possibile aggiungere da modelli on-line:

  • Genera edmx dal database esistente
  • Select Add New Item
  • ricerca online per i modelli POCO
  • Aggiungere EF 5.x DbContext Fluent Generator

Si aggiungerà tre modelli T4 al progetto:

  • XXX.Context.tt - contesto ereditato dal DbContext
  • XXX.Entities.tt - entità POCO
  • XXX. Mappings.tt - mappature FLUENT per ogni entità

MA è necessario impostare manualmente il percorso del modello di dati edmx. Ciascuno di questi modelli ha la linea string inputFile = @"$edmxInputFile$";. È necessario fornire nome del file di edmx qui:

string inputFile = @"Northwind.edmx";

+0

Grazie per l'informazione. Ho aggiunto i modelli ma non è stato generato alcun codice. Ho modificato tutti loro per correggere $ edmxInputFile $ ma non succede nulla. Ho fatto clic con il tasto destro su ciascuno di essi e ho fatto clic su Esegui strumento personalizzato. Cosa mi manca? – user31673

+0

@ user31673 in realtà non è necessario alcuno strumento personalizzato. Basta salvare il modello modificato e genererà automaticamente il file di output (sarà sotto il nodo del modello) –

+1

Ah, un'altra cosa: cancella il contesto e le entità generate con il file edmx. Hai bisogno solo di diagrammi. –

9

Il processo per fare questo è abbastanza snella ora, sembra. I passaggi dalla risposta accettata sono ora facilmente eseguibili dal progettista EDMX stesso. In sostanza,

  • generare il modello (edmx) da un database esistente con l'aggiunta di ADO.NET Entity Data Model al progetto (vedi here per maggiori dettagli),
  • e poi

Aprire il file .edmx in Entity Designer.

Fare clic con il pulsante destro del mouse su un'area vuota sulla superficie di Entity Designer e puntare su Aggiungi elemento di generazione del codice.

Nella finestra di dialogo Aggiungi nuovo elemento, selezionare Modelli online e digitare DBContext nella casella di testo Cerca modelli online.

Selezionare la versione appropriata per il modello (5.0, se si desidera targetizzare Entity Framework 5.0).

Fare clic su OK.

Questo farà tutto il lavoro, a quanto pare. Le istruzioni qui citate si riferiscono ai modelli online come installazione EF 5.x DbContext Fluent Generator è richiesto. Se è già installato, non è necessario cercarlo nei modelli online ma nei modelli installati.

Per ulteriori informazioni è possibile controllare la pagina this, sezione "Per utilizzare il modello di generatore DbContext per generare il codice del livello dell'oggetto".

Problemi correlati