Emitir DbContext.OnModelCreating en cada creación de contexto

Primero uso el código del marco de la entidad para trabajar con mi base de datos. Tengo varias tablas con diferentes nombres pero la misma estructura, y estas tablas aparecen dinámicamente en la base de datos. ¿Cómo podría asignar EntityFramework a una de esas tablas en tiempo de ejecución y usar datos de la misma manera en que trabajo esto sobre entidades de DbContext?

Lo que he hecho para que funcione:

Por ejemplo, mi clase lo que describe la estructura de la tabla creada dinámicamente esSetElement.

Aquí está mi contexto:

public class DataContext : DbContext
{
    public DataContext()
        : base("RepositoryConnectionString") { }

    string setElementsTableId; // the name of table that need to be dynamicly mapped to 

    // Enforce model recreating
    public DataContext(string setElementsTableId)
        : this()
    {
        this.setElementsTableId = setElementsTableId;
    }


    /* some other entities */

    public DbSet<Entities.SetElement> SetElements { get; set; } // dynamicly mapped entity


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        /* come configurations */

        if (!string.IsNullOrEmpty(setElementsTableId))
        {
            modelBuilder.Entity<Entities.SetElement>().Map(x => x.ToTable(setElementsTableId)); // map SetElements property to dynamicly created table
        }
    }
}

Cómo uso esto:

public static void AddSetElements(ICollection<SetElement> setElements, string tableId)
    {
     using (ctx = new DataContext(tableId)) // configere DataContext to map tableId table for entity SetElements
       try
       {
           var num = ctx.SetElements.Count();
           ctx.SetElements.AddRange(setElements);
           ctx.SaveChanges();
       }
       catch (Exception e)
       {
       }
 }

También tengo algunos métodos para obtener, actualizar y eliminar datos de tablas creadas dinámicamente que son iguales aAddSetElements.

Todo funciona como deseo pero solo siAddSetElements se ejecuta primero, porque en el primer contexto de creación de datosDbContext.OnModelCreating ejecuta y configura todas las asignaciones. Pero la creación de la próxima instancia no llamaDbContext.OnModelCreating.

Entonces, mi pregunta es: cómo llamarDbContext.OnModelCreating cada vez que se crea una instancia deDataContext entonces usoDataContext(string setElementsTableId) para crearlo?

Lo sé, mi pregunta es similar a 'mapeo de tabla dinámica en EF' pero no encontré nada en los resultados.

Por cierto. Si conoces otra forma de resolver mi problema, eres bienvenido.

Respuestas a la pregunta(2)

Su respuesta a la pregunta