Мое приложение основано на Entity Framework. Я предлагаю пользователям запрашивать конкретную таблицу, сохраняя свои запросы в другой таблице. Например, таблица TopQuery в базе данных хранит все запросы, которые популярны среди пользователей. Эти запросы выполняются в таблице «Таблица данных»Концептуальная модель запроса с Entity SQL
Для проверки, я попытался выполнить следующее, и это работает. Единственная проблема заключается в том, что он возвращает все столбцы, где я хотел бы использовать столбцы, упомянутые пользователями в их запросах.
string queryString =
@"SELECT VALUE table FROM TestEntities.TableData AS table where table.col1 = 'test'";
ObjectQuery<TableData> productQuery2 =
new ObjectQuery<TableData>(queryString, context);
Моя проблема заключается в том, что если пользователь хранит запрос в базе данных, такой как это, он не работает.
SELECT table.col1, table.col2, table.col3 FROM TestEntities.TableData AS table where table.col1 = "test"
я получаю исключение: Указанный литая из материализованного to'TestEntities.TableData'type System.Data.Objects.MaterializedDataRecord»не является допустимым.
Я также пробовал это без везения.
"SELECT it.col1, it.col2 FROM TableData WHERE it.col1 = 'test'"
Что делать в этом случае?
С уважением,