2017-08-23 3 views
1

Je vérifie s'il y a moyen de changer dynamiquement la table mappée à une entité dans EF 6. Le schéma de la table ne change pas, juste le nom. Par exemple, j'ai une Entité appelée Commandes, puis j'ai besoin d'affecter cette Entité à une vue SQL créée dynamiquement lorsque le programme s'exécute. Le nom de la vue est généré au moment de l'exécution, j'ai donc besoin de mapper le nom de cette vue à l'entité Orders en cours d'exécution. Une idée de comment faire cela? Merci d'avance. -FernandoEF et noms de tables dynamiques

Répondre

2

Tant que le nom de la table ne change pas pendant que votre programme est en cours d'exécution, vous pouvez simplement mapper dans OnModelCreating. Par exemple

class Db: DbContext 
    { 

     public DbSet<Student> Students { get; set; } 
     public DbSet<ClassRoom> Classrooms { get; set; } 

     public DbSet<StudentToClassRoom> StudentToClassRoom { get; set; } 

     private string GetStudentTableName() 
     { 
      return "Student123"; 
     } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Entity<Student>().ToTable(GetStudentTableName()); 
      base.OnModelCreating(modelBuilder); 
     } 

    } 
+0

Mais le modèle est créé avant la création de la vue, je vais ajouter ceci à la question, merci. –

+0

De toute façon, je vais jeter un coup d'oeil à cela parce que je pense que nous pouvons définir le nom de la vue lorsque l'application démarre. Va vérifier et vous laisser savoir, merci. –