ich verbunden bin mit dem Adventure Works 2012-Datenbank LINQPad wie unten gezeigt:Linq Full Outer Join Fehler
Ich versuche, sich einer vollständigen Außen zu schreiben. Meine Forschung sagt mir, es sollte wie folgt aussehen (wie im Screenshot zu sehen):
var LeftOuterJoin = from p in Products
join pv in ProductVendors on p.ProductID equals pv.ProductID into ppv
from pv in ppv.DefaultIfEmpty()
select new {ProductName = p.Name};
var RightOuterJoin = from v in Vendors
join pv in ProductVendors on v.BusinessEntityID equals pv.BusinessEntityID into ppv
from pv in ppv.DefaultIfEmpty()
select new {VendorName = v.Name};
LeftOuterJoin.Union(RightOuterJoin);
jedoch der Fehler im Screenshot (siehe Screenshot) ist:
'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
Instance argument: cannot convert from 'System.Linq.IQueryable<AnonymousType#1>' to 'System.Linq.ParallelQuery<AnonymousType#2>'
Was ist das Problem?
(LeftOuterJoin.toList()). Union (RightOuterJoin.toList()); – Viplock
@Viblock, der Fehler, den ich damit bekomme, ist: 'System.Linq.IQueryable' enthält keine Definition für 'toList' und keine Erweiterungsmethode 'toList' akzeptiert ein erstes Argument vom Typ 'System.Linq .IQueryable konnte gefunden werden (drücken Sie F4, um eine using-Anweisung oder Assemblyreferenz hinzuzufügen) 'System.Linq.IQueryable ' enthält keine Definition für 'toList' und keine Erweiterungsmethode 'toList' akzeptiert ein erstes Argument vom Typ 'System.Linq.IQueryable ' könnte gefunden werden (fehlt Ihnen eine Using-Direktive oder eine Assembly-Referenz?) –
w0051977
wie ich sehe, gibt es Typ Problem, beide anonym type haben unterschiedliche Eigenschaften, so dass das Problem bei der Verwendung von "Union" auftreten kann. Sie können einen gemeinsamen Typ mit derselben Eigenschaft erstellen und verwenden. oder haben beide Eigenschaft und verwenden Sie nach Abfrage. – Viplock