Я новичок в EF, поэтому терпите меня: o
У меня очень прямые отношения в моей базе данных.Таблица ts_Order {ID, OrderDate, OrderNumber} и таблица ts_OrderDetails {ID, ProductId, OrderID}.ID в обеих таблицах - это столбцы PK и Identity.OrderID в таблице ts_OrderDetails - это FK и ссылается на столбец ID таблицы ts_Order.
Мне нужно выбрать все заказы вместе с каждой деталью, которая может иметь каждый заказ.В SQL я напишу что-то вроде этого:
select * from ts_Order ORD inner join ts_OrderDetails DTL on ORD.ID=DTL.OrderID
, который прекрасно работает.
Когда я пытаюсь сделать что-то похожее в EF:что генерируется EF:
SELECT
[Project1].[ID] AS [ID],
[Project1].[OrderDate] AS [OrderDate],
[Project1].[OrderNumber] AS [OrderNumber],
[Project1].[C1] AS [C1],
[Project1].[ID1] AS [ID1],
[Project1].[Product] AS [Product],
[Project1].[OrderID] AS [OrderID]
FROM ( SELECT
[Extent1].[ID] AS [ID],
[Extent1].[OrderDate] AS [OrderDate],
[Extent1].[OrderNumber] AS [OrderNumber],
[Extent2].[ID] AS [ID1],
[Extent2].[Product] AS [Product],
[Extent2].[OrderID] AS [OrderID],
CASE WHEN ([Extent2].[ID] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C1]
FROM [dbo].[ts_Order] AS [Extent1]
LEFT OUTER JOIN (SELECT
[ts_OrderDetails].[ID] AS [ID],
[ts_OrderDetails].[Product] AS [Product],
[ts_OrderDetails].[OrderID] AS [OrderID]
FROM [dbo].[ts_OrderDetails] AS [ts_OrderDetails]) AS [Extent2] ON [Extent1].[ID] = [Extent2].[OrderID]
WHERE [Extent1].[ID] > 0
) AS [Project1]
ORDER BY [Project1].[ID] ASC, [Project1].[C1] ASC
Почему запрос генерируется так сложно?Я что-то упустил?
-Vinod