我正在尝试创建一个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语句。有人可以建议:
感谢。