entity framework:如何禁用特定查询的延迟加载?

有什么办法来禁用惰性加载特定查询entity framework6? 我想定期使用它,但有时我想禁用它。 我正在使用虚拟属性来延迟加载它们。

您可以禁用特定查询的延迟加载,如下所示:

 public static Cursos GetDatosCursoById(int cursoId) { using (var bd = new AcademyEntities()) { try { bd.Configuration.ProxyCreationEnabled = false; return bd.Cursos.FirstOrDefault(c => c.cursoId == cursoId); } catch (Exception ex) { return null; } } } 

在要执行的查询之前设置以下代码

 context.Configuration.LazyLoadingEnabled = false; 

去你的图表属性,并find一个指定的延迟加载和禁用它的属性。

如果您先使用代码,然后进入您的configuration区域,并从那里禁用它:

 this.Configuration.LazyLoadingEnabled = false; 

我可能会在这里丢失一些东西,但不是每次都改变configuration,可能另一种方法是只使用.Include()只在那些你想要加载的查询?

假设我们有一个Product类,它有一个Colour类的导航属性,你可以像这样加载一个ProductColour

 var product = _context.Products .Where(p => p.Name == "Thingy") .Include(x => x.Colours) .ToList();