对不起,标题不够具体——我不知道如何简洁地描述这个问题。 我有旅行和位置两个实体之间存在多对多的关系——很直接,但是位置实体并不需要知道使用它们的旅行。我创建了以下实体来表示这种关系:
public class Trip
{
public int TripId { get; set; }
public virtual IList<TripLocation> TripLocations { get; set; }
}
public class TripLocation
{
public int TripId { get; set; }
public int LocationId { get; set; }
public virtual Location Location { get; set; }
}
public class Location
{
public int LocationId { get; set; }
// Note: Intentionally no collection of Trips
}
我可以让 Trip 急切加载其 TripLocations,但我无法让 TripLocations 急切加载它们的 Locations。我尝试了许多流畅配置和在查询中包含的组合,例如:
IQueryable<Trip> query = from trip in context
.Include(r =>r.TripLocations)
.Include(r => r.TripLocations.Select(tl => tl.Location))
select ride;
非常感谢您的任何建议!
modelBuilder.Entity<Trip>().HasMany(t => t.Locations).WithMany().Map(...);
。在Location
中没有Trips
集合的情况下,使用不带参数的WithMany()
。 - SlaumaTripLocation
)。如果您有这样的附加属性,则根本无法创建多对多关系,必须创建两个一对多关系并将联接表公开为模型中的实体:https://dev59.com/zGw05IYBdhLWcg3wwEYS#7053393 - Slauma