显式加载相关实体时应用筛选器

本文关键字:应用 筛选 实体 加载 | 更新日期: 2023-09-27 18:30:10

我试图通过参考MSDN文章来做到这一点。

我试过这个:

dbContext.Entry(entry) _
    .Collection(Function(c) c.relObjects) _
    .Query() _
    .Where(Function(c) c.MyCondition) _
    .Load()

但它不编译,表示Load()不是IQueryable 的成员

我看到它的目标是EF5。有没有办法让它在EF4中工作?

显式加载相关实体时应用筛选器

我知道这是一篇旧文章,但请确保导入System.Data.Entity命名空间:

Imports System.Data.Entity

.Load方法实际上是该名称空间中的一个扩展方法。

Where条件返回一个IQueryable对象。您应该在收集相关对象之后使用Load

dbContext.Entry(entry).Collection(Function(c) c.relObjects).Load()

从msdn:即使禁用了延迟加载,仍然可以通过在相关实体的条目上显式调用load方法来延迟加载相关实体。例如:

// Load the department related to a given course using a string      
context.Entry(course).Reference("Department").Load();      
// Load the courses related to a given department 
context.Entry(department).Collection(Function(c) c.Courses).Load();