2

我的数据库中有三个表:

  • 邮政
  • 作者
  • 标签

我正在使用带有 EF 5 的 ASP.NET MVC 4,我的 Post 模型(自动生成)看起来像这样:

public partial class BlogPost
{
    public BlogPost()
    {
        this.Tags = new HashSet<Tag>();
    }

    ...

    public virtual Author Author { get; set; }
    public virtual ICollection<Tag> Tags { get; set; }
}

我的上下文和 dbSet 已定义。我正在尝试使用此查询获取数据库中的所有帖子

dbSet.ToList()

我以为 Author 会是 null 而 Tags 会是空的,因为我不习惯Include()使用急切加载。但是如果我调试,我发现 Author 不是 null 并且 Tags 有两个元素。我不明白为什么。

在标签实体中,我有一个导航属性来获取所有获得该标签的帖子。看起来正在填充所有数据......但是当我测试页面时我没有注意到任何性能问题,它加载非常快。

也许这不是一个错误......我只是错过了什么吗?

4

1 回答 1

4

请检查这个答案

延迟加载意味着实体将在您首次访问集合或导航属性时自动加载,并且这将透明地发生,就好像它们总是与父对象一起加载一样。

当您指定要查询的属性时,使用“包含”按需加载。

希望这可以帮助。

于 2013-09-25T21:27:29.220 回答