Динамическое имя таблицы с сущностью

У меня много таблиц с той же структурой модели, но с другими именами таблиц с другими данными (в этом случае будет ~ 100 таблиц). Я хочу динамически переключать имя таблицы во время выполнения с помощью Entity Framework (например, получить таблицу имен из маршрутизации). Таблицы в базе данных динамически добавляются и удаляются другими script. Есть ли способ сделать это с хорошей производительностью, как это?

db.Table("TableName")<SpecificModel>.Where(x => x.ID == ID)

Ответ 1

Вы хотите сделать это?

foreach (string tableName in new[] { "Table1", "Table2" })
{
   var result = dbContext.Database.SqlQuery<SpecificModel>(string.Format("SELECT * FROM {0} WHERE [email protected]", tableName), 1).FirstOrDefault();
}

Ответ 2

Я сделал что-то вроде этого. http://nodogmablog.bryanhogan.net/2013/08/entity-framework-in-an-dynamics-nav-navision-envirnoment/

У меня были таблицы, которые были идентичны, но у них были разные имена. Например, таблица клиентов, но с разными префиксами для разных компаний.

[ACME$Customer] 
[SuperCorp$Customer]

В итоге я использовал динамическую компиляцию. Это довольно подробное сообщение в блоге, поэтому я не буду вдаваться в него здесь.