无法使用嵌套集合将IQueryable类型隐式转换为ObjectQuery

时间:2013-02-09 16:15:39

标签: c# linq generics

我无法弄清楚如何查询嵌套/关联的集合。

情景是:
1个组列表与许多候选人相关联 同一组与许多测试相关联 因此,在一个组的集合中,每个组都有两个相关的列表 我需要获取与登录用户所属的任何和所有组相关联的所有测试。

我在下面的代码中尝试的内容显示无法将类型IQueryable隐式转换为ObjectQuery

tests = db.Tests.Where
(t => t.OAS_Group.Candidates.All
    (c=>c.UserName == HttpContext.User.Identity.Name)
);  

1 个答案:

答案 0 :(得分:0)

错误似乎是tests与右手表达式之间的类型不匹配。你需要将它分配给同一个变量吗?如果是,您可以将tests的类型更改为IQueryable吗?由于ObjectQuery同时实现IQueryabl<T>IQueryable,您应该可以。

IQueryable<Test> tests = null;

// some other assignment to tests

tests = db.Tests.Where
        (t => t.OAS_Group.Candidates.All
             (c=>c.UserName == HttpContext.User.Identity.Name)
        );