【问题标题】:ObjectQuery as a parameter in ESQLObjectQuery 作为 ESQL 中的参数
【发布时间】:2012-01-02 13:17:19
【问题描述】:

假设我有 2 个实体:EntSubEnt,具有 N:1 关系。所以,有导航属性SubEnt.EntsEnt.SubEnt。另外,我定义了一些 ObjectQuery:

ObjectQuery<SubEnt> se;

如何创建从Ent 中选择所有具有Ent.SubEntse 的实体的ESQL 查询? 类似的东西:

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

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

【问题讨论】:

    标签: .net entity-framework entity-sql objectquery


    【解决方案1】:

    一旦拥有 ObjectQuery,就无法将其传递回 ESQL。因此,您必须在没有分隔 se 的 ESQL 中编写整个查询,或者您必须使用 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();
    

    【讨论】:

      猜你喜欢
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多