Предложение LINQ dynamic from

Я использую динамический LINQ для создания запросов во время выполнения. Вот пример:

var result = dbContext.Table1
.Where(x => x.Field1 == "SomeValue")
.Select(x => new { x.Field1, x.Field2 });

Здесь я могу динамически изменять предложение where и предложение select, но есть ли способ для динамического предложения from?

Если я хочу изменить dbContext.Table1 на другую таблицу во время выполнения? Или я должен использовать для этого SQL?

РЕДАКТИРОВАТЬ: О предложении повторяющегося вопроса: это тот же вопрос, но в этом вопросе нет правильного ответа. Предоставленный там ответ не является достаточно общим, мне пришлось бы помещать оператор case для каждой новой таблицы ...


person Aleksa    schedule 13.10.2015    source источник
comment
Возможный дубликат Как создать динамическое предложение FROM для запроса LINQ?   -  person Paul Zahra    schedule 13.10.2015


Ответы (2)


Вы можете использовать текущий код, чтобы получить значение таблицы из имени таблицы. Надеюсь, это поможет.

var table = (ITable)dbContext.GetType()
                       .GetProperty(tableName)
                       .GetValue(dbContext, null);
person Lewis Hai    schedule 13.10.2015

Если вам известен тип сущности, которую необходимо получить, вы можете использовать метод Set<> вашего контекста базы данных вместо свойства Table1. Например:

var data = dbContext.Set<EntityType>();
person DavidG    schedule 13.10.2015