我使用Linq和entity-framework。EF:有沒有辦法強制Linq使用UNION而不是UNION ALL
GetSet1<T>().Union(GetSet2<T>())
GetSetX返回IQueryable。
生成的SQL是一個UNION ALL。但我知道聯盟是實現我的目標的好方法。其實我的解決方法是:
GetSet1<T>().Union(GetSet2<T>()).Distinct()
在這種情況下產生的SQL是這樣的:
select distinct Field...
from (
select distinct Field...
union all
select distinct Field...
) unionall
我知道(因爲那是方式是鑫卡特)是
select Field...
union
select Field...
是最好的查詢。那麼,有沒有一種方法(我可以(T居然發現)有使用的EntityFramework UNION而不是UNION ALL
==========
1:添加<T>
更高精度
也許這兩套已經證明是可以區分的嗎?雖然我看不出EF如何足夠聰明來解決這個問題。 – usr