Entity framework изменяет имя таблицы программно

#entity-framework

#entity-framework

Вопрос:

Есть ли способ изменить имя таблицы программно в entity Framework? Я получил 2 параметра времени выполнения, определяющих таблицу. Все таблицы имеют одинаковую структуру, единственное отличие — это имя. Я знаю, что могу добавить два параметра в виде столбцов, но в этом случае лучше использовать разные таблицы.

Заранее спасибо за любую помощь!

Комментарии:

1. Вам нужно иметь возможность изменять его на лету или до того, как EF будет инициализирован в первый раз? Я не верю, что первый вариант возможен, но второй может быть.

2. Нам это нужно на лету. Конечный пользователь заполняет параметры. Проблема в том, что таблица станет слишком большой, если мы добавим 2 столбца для параметров. Параметры выполняют логическое разделение.

Ответ №1:

Если вы используете Code First (или перепроектируете контекст Code First для существующей базы данных), вы можете использовать Table атрибут:

 [Table("tablename")
public class MyEntity
{
    //stuff
}
 

Это изменит имя таблицы на то, что вы указали в строке.

Кроме того, вы можете использовать Fluent Configuration API:

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<MyEntity>()
      .ToTable("tablename");
}
 

Комментарии:

1. Я знаю, но параметры заполняются во время выполнения.