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?
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.
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
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
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