2012-03-14 5 views
0

Динамические запросы недостаточно динамичны. Я видел такие решения, как this, но все же я должен указать, какие таблицы использовать в качестве основы:Linq To Entities - Как создать запрос, где имя таблицы является параметром

var query = db.Customers.Where("...").OrderBy("...").Select("..."); 

Я хочу, чтобы создать простой инструмент запроса, в котором пользователь будет выбирать из доступных таблиц с помощью раскрывающегося списка. В результате я хочу показать первые несколько записей. Поэтому Мне тоже нужно изменить таблицу! То есть, мне нужно что-то вроде этого:

string selectedTable = "Customers"; 
var [tableName] = SomeTypecastingOperations(selectedTable); 
var query = db.[tableName].Where("...").OrderBy("...").Select("..."); 

Is EF динамический достаточно, чтобы справиться с этим?

ответ

0

Linq-to-entity не поддерживает это. Вы можете достичь этого с помощью Entity SQL или некоторого уродливого кода, который будет иметь условную логику для каждого набора, который вы хотите запросить (например, большой switch для имен таблиц).

+0

Мне любопытно узнать ваше решение _big switch_. Одна сторона будет моей 'selectedTable', но другая сторона не имеет полиморфного суперкласса :( Я могу написать генератор кода для этого коммутатора, однако я не могу возвращать разные результаты, например' ObjectSet 'или' ObjectSet 'и т. Д. –

+0

Этот переключатель ничего не вернет, он будет непосредственно заполнять ваш интерфейс. –

+0

Теперь я понимаю, что вы имеете в виду с ** уродливым ** :-) –

 Смежные вопросы

  • Нет связанных вопросов^_^