如何按非列字段排序?

时间:2012-09-20 06:42:03

标签: entity-framework entity-sql

我正在尝试创建一个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列LIKE'%%%with%multiple%wildcards'”。

我不认为Rank列有问题。我确实认为这是我试图将一个订单应用于由union all加入的两个不同的esql语句。有人可以建议:

  1. 如何将ORDER BY应用于此类UNION / UNION ALL语句
  2. 如何按非实体列表达式排序。
  3. 感谢。

0 个答案:

没有答案