我有一種情況在下面的嵌套C#LINQ嵌套select查詢
--Orders (List)
----Products (List)
------Manufacturers (List)
FIELDS
-Name
-Address
-City
在這種情況下,我需要執行查詢,這將在過濾的製造商市並返回Orders, Products & only matching city manufacturers
我試圖把以下查詢,但我收到所有產品列表即使城市不匹配製造商。
var filteredOrders = from o in Orders
from t in o.Products
where t.Manufacturers.Any(v => v.City == "Hartford")
select o;
或者,即使我從select o
更改爲「選擇t.Manufacturers」我得到製造商的所有名單,不論城市濾波器。
幸運的是,我得到了與我的場景匹配的W3school SQL示例。 https://www.w3schools.com/sql/trysql.asp?filename=trysql_op_or
SQL查詢:
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'
是什麼'p.Products'的'p'? – shole
@shole,我的壞,編輯! – Kenz
'Any()'返回true或false,所以如果任何城市是「Hartford」,它將返回true,意味着你什麼都不過濾。嘗試最簡單的確切條款:'哪裏t.Manufacturers.City ==「哈特福德」' – shole