次のように、EntityFrameworkクエリ(4.1)に孫を含める必要があります。ここで、孫は子から離れています。
スケジュールには1つのルートがあり、ルートには1つのFromAirportと1つのToAirportがあります
私は以下を試しました:
.Include(x => x.Route.FromAirport).Include(x => x.Route.ToAirport)
ただし、次のようなSQLクエリが生成されます。
FROM [dbo].[Schedule] AS [Extent1]
INNER JOIN [dbo].[Route] AS [Extent2] ON [Extent1].[RouteId] = [Extent2].[Id]
LEFT OUTER JOIN [dbo].[Route] AS [Extent3] ON [Extent1].[RouteId] = [Extent3].[Id]
LEFT OUTER JOIN [dbo].[Airport] AS [Extent4] ON [Extent3].[FromAirportId] = [Extent4].[Id]
LEFT OUTER JOIN [dbo].[Airport] AS [Extent5] ON [Extent3].[ToAirportId] = [Extent5].[Id]
もちろん、ルートは2回結合されています。EFがエンティティモデルに正しくバインドされている限り、これを使用できます。
インクルードを指定するより良い方法はありますか?