显式加载相关实体时应用筛选器
本文关键字:应用 筛选 实体 加载 | 更新日期: 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();