EF Code First 强制预加载

2024-02-08

我将 EF 5 与 Code First 结合使用。我有一个类,我想总是急切地加载一些属性。我删除了virtual关键字但它不是急切加载:

public class Person
{
   public ICollection<Email> Emails { get; set; } 
   public Profile Profile {get;set;}
}

那么通过关闭延迟加载,它不会自动急切加载,对吗?如果是这样,我如何在不使用 Include() 的情况下存档它?

Thanks!


不,通过删除来关闭延迟加载virtual关键字不会自动启用预加载。你必须Include相关的Entity or Collection像这样:

var personWithProfile = ctx.People.Include(x => x.Profile).First();
var personWithProfileAndEmails = ctx.People.
                                           .Include(x => x.Profile)
                                           .Include(x => x.Emails)
                                           .First();

这是来自 ADO.NET 团队博客的精彩读物:http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-lated-entities.aspx http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EF Code First 强制预加载 的相关文章

随机推荐