我正在检查是否有方法动态地更改映射到EF6中的实体的表。表的模式不会更改,只会更改名称。例如,我有一个名为Orders的实体,然后需要将此实体分配给在程序运行时动态创建的SQL视图。视图的名称是在运行时生成的,因此我需要在运行时将该视图名称映射到Orders实体。你知道怎么做吗?提前谢谢。-Fernando
发布于 2017-08-23 20:57:10
只要程序运行时表名不变,就可以直接在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);
}
}
https://stackoverflow.com/questions/45848782
复制相似问题