1
Orders, OrderItems 및 OrderSubItems 테이블이 3 개 있다고 가정 해 보겠습니다. 자체 주문 하위 항목을 포함하는 주문 항목을 포함하는 주문 테이블. 계단식 그룹 조인
그래서Orders:
Id | Other columns
O-123456 |
O-789123 |
O-456789 |
OrderItems:
Id | OrderId | Other columns
OI-123456 | O-123456 |
OI-123457 | O-123456 |
OI-123458 | O-123456 |
OI-123459 | O-456789 |
OI-123460 | O-456789 |
OI-123461 | O-456789 |
OrderSubItems:
Id | OrderItemId | Other columns
OSI-123456 | OI-123456 |
OSI-123457 | OI-123456 |
OSI-123458 | OI-123457 |
OSI-123459 | OI-123457 |
OSI-123460 | OI-123458 |
OSI-123461 | OI-123458 |
따라서 순서 O-123456 3 주문 상품 OI-123456를 갖고, OI-123,457 및 123,458-OI. 각 주문 항목에는 2 개의 주문 하위 항목이 있습니다.
저는 엔티티 프레임 워크 데이터베이스를 먼저 사용하고 제약 조건을 사용하지 않고이 세 테이블간에 링크를 만듭니다. 그래서 수동으로 링크를 만들어야합니다. 두 번째 GroupJoin 컴파일되지
Orders.GroupJoin(OrderItems, order => order.Id, orderItem => orderItem.OrderId, (order, orderItem) => new { order, orderItem })
.GroupJoin(OrderSubItems, x => x.orderItem.Id, y => y.OrderItemId, (x, orderSubItem) => new
{
x.orderItem.ItemId,
... ???
})
.Dump();
:
이미 이런 짓을. 내 목표는 데이터의 원래 구조를 만드는 것입니다. 나는 LinqPad를 사용한다.