8

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

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

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

谢谢!

4

1 回答 1

18

不,通过删除关键字关闭延迟加载virtual不会自动启用急切加载。您必须Include相关EntityCollection类似:

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-related-entities.aspx

于 2012-08-22T00:35:54.847 回答