Ich habe ein Szenario, in folgenden verschachteltenC# LINQ verschachtelte SELECT-Abfrage
--Orders (List)
----Products (List)
------Manufacturers (List)
FIELDS
-Name
-Address
-City
In diesem Szenario würde ich brauche Abfrage auszuführen, die auf Stadt von Hersteller und gibt Orders, Products & only matching city manufacturers
filtert Ich habe versucht, folgende Abfrage zu stellen, aber ich bekomme alle Liste von Produkte, obwohl Stadt nicht zu Herstellern passt.
var filteredOrders = from o in Orders
from t in o.Products
where t.Manufacturers.Any(v => v.City == "Hartford")
select o;
Oder auch wenn ich von select o
zu ‚wählen t.Manufacturers‘ ändern Ich bin alle Liste der Hersteller immer unabhängig von Stadt Filter.
Zum Glück habe ich W3school SQL-Beispiel, das zu meinem Szenario passt. https://www.w3schools.com/sql/trysql.asp?filename=trysql_op_or
SQL Query:
SELECT o.OrderId, p.ProductName, s.*
FROM [Orders] o
JOIN OrderDetails od ON o.OrderId = od.OrderId AND o.orderId = 10248
JOIN Products p ON od.ProductId = p.ProductId
JOIN Suppliers s ON p.SupplierId = s.SupplierId and s.City ='Singapore'
was hat, ist 'P' von' p.Products'? – shole
@shole, mein schlechtes, bearbeitet! – Kenz
'Any()' return true oder false, also wenn einer der Stadt ist "Hartford", es gibt wahr, bedeutet, dass Sie nichts filtern. Versuchen Sie am einfachsten exakten Where-Klausel: 'Wo t.Hersteller.Stadt ==" Hartford "' – shole