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
类的导航属性,你可以像这样加载一个Product
的Colour
–
var product = _context.Products .Where(p => p.Name == "Thingy") .Include(x => x.Colours) .ToList();