1
我正在使用BLToolKit作爲ORM映射器。BLToolKit生成錯誤的SQL
我現在的問題是,它會產生錯誤的SQL。
我有此查詢:
var qry = from i in s.Query<ChannelDTO>()
join o in s.Query<StorageShelfDTO>() on i.Id equals o.ChannelID into p1
select new {i.Id, n = p1.Count()};
var qry2 = qry;
qry2 = qry2.Where(x => x.n == 0);
Debug.Print("Entrys: " + qry2.ToList().ToString());
至極生成此SQL:
SELECT
[x].[Id] as [Id1]
FROM
(
SELECT
(
SELECT
Count(*)
FROM
[WMS_StorageShelf] [t1]
WHERE
[i].[ID] = [t1].[ChannelID]
) as [c1],
[i].[ID] as [Id]
FROM
[WMS_Channel] [i]
) [x]
WHERE
[x].[c1] = 0
至極缺少計數字段外選擇!
但是當我刪除的條件:
qry2 = qry2.Where(x => x.n == 0);
那麼正確的SQL是Gnerated
我知道有derferd執行,也這就是我想要的!但外部選擇缺少計數,因此值不會填充結果!確定當我過濾== 0這個工程,但當我過濾如> 0它也沒有填充 –