显式加载相关实体时应用过滤器

时间:2012-04-06 15:29:41

标签: c# entity-framework entity-framework-4 load filtering

我试图这样做是指MSDN article

我试过了:

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

但它没有编译,说Load()不是IQueryable的成员

我看到它以EF5为目标。 有没有办法让它在EF4中运行?

2 个答案:

答案 0 :(得分:1)

我知道这是一篇旧帖子,但要确保导入System.Data.Entity命名空间:

Imports System.Data.Entity

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

答案 1 :(得分:0)

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

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

From 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();