2017-08-23 7 views
1

EF 6のエンティティにマッピングされたテーブルを動的に変更する方法があるかどうかを確認しています。テーブルのスキーマは変更されず、名前だけが変更されます。たとえば、Ordersというエンティティがある場合、プログラムの実行時に動的に作成されるSQLビューにこのエンティティを割り当てる必要があります。ビューの名前は実行時に生成されるため、実行時にそのビュー名をOrdersエンティティにマップする必要があります。どのようにこれを行うにはどのようなアイデア? ありがとうございます。 -FernandoEFと動的テーブルの名前

答えて

2

プログラムの実行中にテーブル名が変更されない限り、OnModelCreatingでマップすることができます。例えば

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

しかし、ビューが作成される前にモデルが作成されていますが、これを質問に追加します。ありがとうございます。 –

+0

とにかく、私はアプリを起動するときにビュー名を設定できると思っているので、これを見ていきます。確認してお知らせします、ありがとう。 –

関連する問題