MVC& Linq:使用强包含和传递到视图/模型来连接多个表

时间:2013-10-20 15:21:43

标签: asp.net-mvc linq

我无法在任何地方找到答案。我想加入3个表2,其中没有直接关系。

  • 船舶> [Id] [姓名]
  • 行程> [Id] [ShipId] [名称] [StartDate] [EndDate]
  • 行程门票> [Id] [ItineraryId] [DayNumber] [Port]

Ship的EF / Model类具有针对ItineraryPorts的行程和行程的导航属性。

  1. 一次性加载所有Ship,Itinerary和ItineraryPorts数据的强类型包含的语法是什么?我想从Ship表(不是行程)开始。

    Ship ship = repository.Ships
       .Include(s => s.Itinerary)
       // What now?
    
  2. 我可以将结果作为Ship模型传递给视图吗?即我可以通过行程表深入查看ItineraryPort数据吗?或者我需要一个视图模型?

1 个答案:

答案 0 :(得分:0)

这应该有效:

Ship ship = repository.Ships.Include(s => s.Itinerary.Select(it => it.ItineraryPorts))

您的视图不需要特定的视图模型,因为您可以通过Ship模型找到所需的所有数据。