我試圖讓這兩個查詢的聯盟,但不斷收到以下錯誤執行工會:在LINQ
'System.Linq.IQueryable<AnonymousType#1>' does not contain a definition for 'Union' and the best extension method overload 'System.Linq.ParallelEnumerable.Union<TSource>(System.Linq.ParallelQuery<TSource>, System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments
的LINQ查詢是這樣的:
var g = from p in context.APP_PROD_COMP_tbl
where p.FAM_MFG == fam_mfg
group p by new
{
a_B_G = p.B_G,
a_MFG = p.MFG,
a_PRODUCT_FAM = p.PRODUCT_FAM,
};
var q = from p in context.APP_COMP_tbl
where p.FAM_MFG == fam_mfg
group p by new
{
a_B_G = p.a_B_G,
a_MFG = p.a_MFG,
a_PRODUCT_FAM = p.a_PRODUCT_FAM,
};
var data = q.Union(g);
我已經嘗試過在查詢周圍使用IEnumerable,但它仍然無法工作。我不確定哪裏會出錯,儘管LINQ並不是我曾經接觸過的東西。
更新:
所以我已經在一個稍微不同的方向,從我剛纔貼。在做了更多的研究後,group by
聲明來自舊代碼,不再需要用於預期目的。我將這些改爲select new
聲明,並沒有與工會進一步的問題。
@downvoter請解釋爲什麼這是一個不好的解決方案? – wudzik
我看到他的匿名對象匹配,除非類型不匹配我沒有看到你的建議。 – TombMedia
@TombMedia我暗示APP_PROD_COMP_tbl!= APP_COMP_tbl所以該組的對象將不匹配,工會將無法正常工作 – wudzik