繁体   English   中英

首先使用EF 5数据库进行延迟加载

[英]Lazy loading with EF 5 Database first

我的数据库中有三个表:

  • 岗位
  • 作者
  • 标签

我正在使用带有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,并且Tag具有两个元素。 我不明白为什么。

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

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

请检查以下答案

延迟加载意味着当您首次访问集合或导航属性时,实体将自动加载,并且透明地进行,就像它们总是被父对象加载一样。

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

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM