私のアプリケーションは Entity Framework に基づいています。クエリを別のテーブルに保存することで、特定のテーブルをクエリするようユーザーに提供しています。たとえば、データベースの TopQuery テーブルには、ユーザーの間で人気のあるすべてのクエリが格納されます。これらのクエリは、テーブル「TableData」で実行されます
テスト目的で、次のことを試してみましたが、動作します。唯一の問題は、ユーザーがクエリで言及した列を使用したい場合に、すべての列を返すことです。
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"
例外が発生します: 具体化された System.Data.Objects.MaterializedDataRecord から 'TestEntities.TableData' 型への指定されたキャストは無効です。
私も運なしでこれを試しました。
"SELECT it.col1, it.col2 FROM TableData WHERE it.col1 = 'test'"
このような場合はどうすればよいですか?
よろしく、