0

假设我有 2 个实体:Ent并且SubEnt具有 N:1 关系。因此,有导航属性SubEnt.EntsEnt.SubEnt. 另外,我定义了一些 ObjectQuery:

ObjectQuery<SubEnt> se;

如何创建从Ent具有Ent.SubEntfrom 的所有实体中选择所有实体的 ESQL 查询se?像这样的东西:

SELECT VALUE it FROM Ent WHERE Ent.SubEnt IN @p

其中@p == se。它看起来像一个嵌套查询。但是这种语法不正确,因为“仅支持标量类型”。

4

1 回答 1

0

一旦有了 ObjectQuery,就不能将它传递回 ESQL。因此,您必须在没有分隔的 ESQL 中编写整个查询,se或者您必须使用 ObjectQuery 本身。在以后的情况下尝试类似:

var query = from e in context.Ents
            join s in se on e.Ent.Id equals s.Id
            select e;

除非您的示例只是对较大查询的一些简化,否则您也可以简单地尝试:

var query = se.SelectMany(s => s.Ents).Distinct();
于 2011-11-21T09:16:36.607 回答