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

标签 c# entity-framework asp.net-mvc-4 lazy-loading ef-database-first

我的数据库中有三个表:

  • 发帖
  • 作者
  • 标签

我将 ASP.NET MVC 4 与 EF 5 结合使用,我的 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 有两个元素。我不明白为什么。

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

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

最佳答案

请检查此answer :

Lazy Loading means that entities will be automatically loaded when you first access collection or navigation property, and that will happen transparently, as though they were always loaded with parent object.

Using "include" is loading on demand, when you specify properties you want to query.

希望这有帮助。

关于c# - 首先使用 EF 5 数据库进行延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19015422/

相关文章:

c# - 如何将C#中匿名类型的IEnumerable序列化为JavaScript对象?

c# - 限制 C# 应用程序中托管堆的大小

c# - Ninject.Web 和用户控件

javascript - FluentAutomation 和查找元素同级

c# - 用于从 .NET Core 应用程序调用 WCF 服务发送 cookie 的中间件

entity-framework - EF 4.1 代码优先。具有与其基类的主键名称不同的主键名称的表类型继承

c# - Entity Framework 。违反 UNIQUE KEY 约束

entity-framework - DOTNET CLI RC2 EF 迁移

.net - 向 Google 联系人请求添加授权

validation - Mvc4 RTM 验证抛出错误