我的模特有:
class Request
{
public int RequestId {get;set;}
[Reference]
public List<Package> Packages {get;set;}
}
class Package
{
public int PackageId {get;set;}
public inst RequestId {get;set;}
}
如果我跑:
db.LoadSelect<Request>(q => q.OrderBy(x => x.RequestId));
OrmLite将生成sqls,如:
SELECT "RequestId" FROM "Request" ORDER BY "RequestId" ASC
SELECT "PackageId", "RequestId" FROM "Package"
WHERE "RequestId" IN (SELECT "Request"."RequestId" FROM "Request" ORDER BY "RequestId" ASC)
会引发以下sql错误:
ORDER BY子句在视图,内联函数中派生无效 表,子查询和公用表表达式,除非TOP或FOR 还指定了XML。
,原因显然是第二个查询的子查询中的ORDER BY。
所以这里有两点:
答案 0 :(得分:1)
嗯,无法在Sub Selects中使用ORDER BY
似乎是特定于Sql Server的限制。但是因为它不应该影响行为,我已经清除了加载参考中使用的ORDER BY
术语子选择in this commit。
此更改可从 v4.0.33 + now available on MyGet获得。