2014-09-25 21 views
5

Quando si crea un nuovo modello di dati entità da un database esistente utilizzando primo codice dal database approccio, si può direttamente specificare le tabelle da includere nel modello. Un sottoinsieme (o tutte) le tabelle possono essere selezionate in studio guidata vista:Come aggiungere tabelle aggiuntive a un codice esistente prima dal modello EF del database?

EF Data Model Wizard

In questo esempio, Category e Product classi saranno creati insieme con la classe del contesto derivata DbContext. Se successivamente desidero aggiungere ulteriori tabelle allo stesso modello, esiste un modo semplice per aggiungerle, ovvero senza dover creare manualmente le classi da solo?

Ad es Inizialmente, la mia classe DbContext conterrà:

public virtual DbSet<Category> Categories { get; set; } 
public virtual DbSet<Product> Products { get; set; } 

Ora supponiamo voglio anche includere Employee tavolo in modo che la classe DbContext sarà aggiornato a:

public virtual DbSet<Category> Categories { get; set; } 
public virtual DbSet<Product> Products { get; set; } 
public virtual DbSet<Employee> Employees { get; set; } 

menu contestuali VS non sembrano fornire questa opzione, ma forse mi manca qualcosa. C'è un modo per riportare il wizard in modo da poter selezionare tabelle aggiuntive?

Una soluzione è quella di avere un progetto vuoto separata dove è sufficiente creare un nuovo modello e quindi copiare/incollare nuove classi, ma sono curioso di sapere se c'è un modo più veloce.

risposta

2

No, non c'è modo di farlo. È necessario eseguire nuovamente la procedura guidata e generare le classi desiderate.

+0

Grazie. Sai forse se c'è qualche motivo tecnico o di progettazione specifico per questo? Mi sembra che implementare qualcosa del genere dovrebbe essere piuttosto semplice, quindi è strano che manchi da VS. – w128

+0

Penso che la squadra non ci sia mai riuscita. Qual è il problema che stai affrontando semplicemente generando nuovamente i file? Non vedo una grande differenza in quel flusso di lavoro e ciò che stai chiedendo ... – ErikEJ

+0

Il problema (che non ho menzionato in origine) è che rinominerò alcuni nomi predefiniti (ad es. Il nome della tabella nel mio caso specifico potrebbe essere customer_data mentre voglio che la classe si chiami CustomerData) e fornisca gli attributi di 'Table', cioè aggiusto leggermente il codice generato e ricreando l'intera cosa sovrascrive tutto. – w128

Problemi correlati