2013-10-20 34 views
0

我无法在任何地方找到明确的答案。我想加入3个表格,其中2个没有直接关系。MVC&Linq:加入多个表格,强烈包含并传递到视图/模型

  • 船舶> [ID] [姓名]
  • 行程> [ID] [ShipId] [名称] [开始日期] [结束日期]
  • ItineraryPorts> [ID] [ItineraryId] [DayNumber] [端口]

Ship的EF/Model类有一个用于Itinerary和Itinerary的导航属性,用于ItineraryPorts。

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

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

回答

0

这应该工作:

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

你并不需要为您查看特定视图模型,因为所有你需要的数据可以通过船模被发现。

相关问题