2012-04-06 68 views
0

我试图做的是参考MSDN article明确加载相关实体时应用过滤器

我尝试这样做:

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

但它不会编译,说的load()不是IQueryable的

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

+0

C#或VB.NET?您使用'vb.net'语法通过'c#'标记了问题。 – abatishchev 2013-02-02 02:02:20

回答

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

我知道这是旧的文章,但要确保你导入System.Data.Entity命名空间:

Imports System.Data.Entity 

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

+0

你明星,那就是我想念的! – Alxwest 2013-03-08 17:11:02