3

2 つのサブクエリの結合である Entity SQL を作成しようとしています。

(SELECT VALUE DISTINCT ROW(e.ColumnA, e.ColumnB, 1 AS Rank) FROM Context.Entity AS E WHERE ...)
UNION ALL 
(SELECT VALUE DISTINCT ROW(e.ColumnA, e.ColumnB, 2 AS Rank) FROM Context.Entity AS E WHERE ...)
ORDER BY *??*  LIMIT 50

私が試してみました:

ORDER BY Rank

ORDER BY e.Rank

しかし、私は取得し続けます:

System.Data.EntitySqlException: The query syntax is not valid. Near keyword 'ORDER'  

編集

これがエンティティ フレームワークです。C# では、クエリは次を使用して実行されます。

var esql = "...";
ObjectParameter parameter0 = new ObjectParameter("p0", value1);
ObjectParameter parameter1 = new ObjectParameter("p1", value2);
ObjectQuery<DbDataRecord> query = context.CreateQuery<DbDataRecord>(esql, parameter0, parameter1);
var queryResults = query.Execute(MergeOption.NoTracking);

Entity SQL を使用する必要があるアプリケーションのごく一部しかありません。一般的に、主な使用例は、「WHERE 列が 'A % value % with % multiple % wildcards'」のようにする必要がある場合です。

ランク欄には問題ないと思います。ユニオンオールで結合された2つの異なるesqlステートメントにオーダーバイを適用しようとしている方法だと思います。誰かが提案できますか:

  1. この種の UNION/UNION ALL ステートメントに ORDER BY を適用する方法
  2. 非実体列式による順序付け方法。

ありがとう。

4

0 に答える 0