【发布时间】:2018-02-01 13:53:16
【问题描述】:
我正在检查是否有办法在 EF 6 中动态更改映射到实体的表。表的架构不会改变,只是名称。例如,我有一个名为 Orders 的实体,那么我需要将这个实体分配给程序运行时动态创建的 SQL 视图。视图的名称是在运行时生成的,因此我需要将该视图名称映射到运行时的 Orders 实体。知道怎么做吗? 提前致谢。 -费尔南多
【问题讨论】:
标签: entity-framework dynamic mapping
我正在检查是否有办法在 EF 6 中动态更改映射到实体的表。表的架构不会改变,只是名称。例如,我有一个名为 Orders 的实体,那么我需要将这个实体分配给程序运行时动态创建的 SQL 视图。视图的名称是在运行时生成的,因此我需要将该视图名称映射到运行时的 Orders 实体。知道怎么做吗? 提前致谢。 -费尔南多
【问题讨论】:
标签: entity-framework dynamic mapping
只要在您的程序运行时表名不改变,您就可以在 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);
}
}
【讨论】: