Ответ 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();
}
У меня много таблиц с той же структурой модели, но с другими именами таблиц с другими данными (в этом случае будет ~ 100 таблиц). Я хочу динамически переключать имя таблицы во время выполнения с помощью Entity Framework (например, получить таблицу имен из маршрутизации). Таблицы в базе данных динамически добавляются и удаляются другими script. Есть ли способ сделать это с хорошей производительностью, как это?
db.Table("TableName")<SpecificModel>.Where(x => x.ID == ID)
Вы хотите сделать это?
foreach (string tableName in new[] { "Table1", "Table2" })
{
var result = dbContext.Database.SqlQuery<SpecificModel>(string.Format("SELECT * FROM {0} WHERE [email protected]", tableName), 1).FirstOrDefault();
}
Я сделал что-то вроде этого. http://nodogmablog.bryanhogan.net/2013/08/entity-framework-in-an-dynamics-nav-navision-envirnoment/
У меня были таблицы, которые были идентичны, но у них были разные имена. Например, таблица клиентов, но с разными префиксами для разных компаний.
[ACME$Customer]
[SuperCorp$Customer]
В итоге я использовал динамическую компиляцию. Это довольно подробное сообщение в блоге, поэтому я не буду вдаваться в него здесь.