我有两个表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