我正在检查是否有办法动态更改映射到EF 6中的实体的表。表的架构不会更改,只是名称。例如,我有一个名为Orders的实体,然后我需要将此实体分配给程序运行时动态创建的SQL视图。视图的名称是在运行时生成的,因此我需要在运行时将该视图名称映射到Orders实体。知道怎么做吗? 提前致谢。 -Fernando
答案 0 :(得分: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);
}
}