我有兩個表People
和Orders
以及使用PeopleOrders
這兩者之間的多對多關係。使用Linq查詢具有Where子句和多對多關係的Entity Framework
每個訂單與兩個人相關聯:Client
和Salesman
。
我有以下查詢:
var query = db.People
.Where(u => u.Description.Equals("Client"))
.Select(u => new {u.Id, OrderId = u.Orders.Select(p => p.Id))
})
.ToList();
這將返回一個這樣的JSON:
[{"Id":1,"OrderId":[2]},{"Id":9,"OrderId":[10,11,12,13]},{"Id":14,"OrderId":[14,15]}]
的ClientID
和訂單的陣列。
我需要反轉。訂單不能是數組。
所以我需要OrderID
與ClientID
關聯。事情是這樣的:
[{"OrderId":2,"Id":1},{"OrderId":10,"Id":9},{"OrderId":11,"Id":9},{"OrderId":12,"Id":9},{"OrderId":13,"Id":9}]
查詢會是這樣的:
var query = db.Orders
但我需要子查詢People表,所以它僅返回客戶端;否則,它將返回一組人像:
{"OrderId":2,"Id":[1,10]}
在此先感謝您。
非常感謝您!這解決了這個問題。 – Migu3litto
@ Migu3litto不客氣。我很高興我幫助:)! – Christos