Come disabilitare la generazione di tabelle per un'entità specifica quando il mio contesto DB viene inizializzato?
public class MyDbContext : DbContext {
public DbSet<MyEntity> MyEntity{ get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Ignore<MyEntity>();
base.OnModelCreating(modelBuilder);
}
}
Questo codice aiuta ma esclude completamente l'entità e ho ancora bisogno di interrogarlo.
Senza entrare troppo nel dettaglio, EF confronta il codice generato dalla tua struttura DB con il codice generato precedente quando osserva le migrazioni: non si confronta in realtà con il DB non elaborato ogni volta.
Dovresti essere in grado di ignorarlo volendo creare una tabella creando una nuova migrazione, eliminando / commentando la tabella creando codice in UP e table remove code in DOWN e applicando la migrazione vuota. Avrà comunque la vista nel codice generato, quindi non tenterà di aggiungerlo di nuovo.
Questo mapperà la tua entità su una tabella già esistente o su una vista nel tuo caso
modelBuilder.Entity<entityname>().ToTable("Tablename");
o utilizzando annotazioni di dati come questo
[Table("tablename")]
public class ClassName {
....
}