Linq EF使用.Include在表之间导航
我想扩展这个查询Linq EF使用.Include在表之间导航,linq,entity-framework,Linq,Entity Framework,我想扩展这个查询 var itinerary = context.Itineraries .Include(i => i.ItineraryDays) .Include(i => i.ItineraryStartDates) .Where(i => i.Id == Id).FirstOrDefault(); 。。要包括3个表,这些表可通过使用以下导航属性遍历的“行程
var itinerary = context.Itineraries
.Include(i => i.ItineraryDays)
.Include(i => i.ItineraryStartDates)
.Where(i => i.Id == Id).FirstOrDefault();
。。要包括3个表,这些表可通过使用以下导航属性遍历的“行程日”访问
- InventureDay>>公共虚拟列表{get;set;}(inventureDay.ListingId==Listing.Id)
- 清单>>公共虚拟端口{get;set;}(Listing.PortId==Port.Id)
- 端口>>公共虚拟国家/地区{get;set;}(Port.CountryId=Country.Id)
你好,盖伊如果是那样的话,你必须更换
.Include(i => i.ItineraryDays)
借
你会得到4
因为它们是“单一”属性,所以就可以了
编辑
哦,由于旅程中的行程天数
(顺便说一句,可能会猜到)似乎是一个集合,你认为你必须这么做吗
.Include(i => i.ItineraryDays.Select(id => id.Listing.Port.Country))
您好,当我尝试此intellisense时,它通知我:无法将lambda表达式转换为“string”类型,因为它不是委托类型。你知道为什么吗?干杯Guy@GuyNortonKk,看看编辑,也许吧?我已经做到了:.Include(I=>I.itineraydays.Select(l=>l.Listing)。Select(p=>p.Port)。Select(c=>c.Country)),但是你的当然更好!问题是什么?
.Include(i => i.ItineraryDays.Select(id => id.Listing.Port.Country))