0

我使用实体框架,并且在数据库中用户和框之间存在多对多关系,如下所示:

public class HistoryEntry
{
    public int BoxId { get; set; }
    public virtual Box Box { get; set; }

    public int UserId { get; set; }
    public virtual User User { get; set; }

    public int ResultBoxId { get; set; }
    public virtual Box ResultBox { get; set; }
}

这个“HistoryEntries”表的键是一个多列键:它由 BoxId 和 UserId 组成:

        modelBuilder.Entity<HistoryEntry>().HasKey(entry =>
            new
            {
                BoxId = entry.BoxId,
                UserId = entry.UserId
            });

但是,我想关闭延迟加载和代理创建,因为我会将每个查询都用于急切加载。

如何以“渴望加载”的方式重写我的代码?

4

1 回答 1

2

使用该Include方法预先加载导航属性。

var users = context.User.Include(u => u.HistoryEntries.Select(h => h.Box))
      .Where(/* */);
于 2012-09-09T15:48:49.857 回答