我使用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