Zac*_*ott 3 linq-to-entities where-clause
顶部的BigQuery获取一组Products和嵌套的相关表.然后,我在规范模式的不良尝试中应用过滤.这是过滤器代码.查询中有三个表,我想通过嵌套在底部查询中的值来过滤顶部查询.就像我说的,这目前产生了我们想要的结果.
但是,.Contains()为每个产生一个SQL WHERE EXISTS()子句.我们真的只需要一个,但我不知道如何获取内部ID与外部ID进行比较.
from p in bigQuery // Root table
where ( from pp in p.LPP // Level 1 nested table
where (from pv in pp.LPV // Level 2 nested table
where pv.colorid == intValue // Our filter value
select p.id).Contains(p.id) // Where exists
select p.id).Contains(p.id) // Where exists
select p;
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?这样就生成了一个900行的SQL语句,到目前为止我们只有一个过滤器.
from p in bigQuery
where p.LPP.SelectMany(pv => pv.LVP).Any(x => x.colorid == intValue)
select p;
Run Code Online (Sandbox Code Playgroud)
从我所看到的,上述内容应该是等同的.如果有效,请尝试并检查生成的SQL.无论如何,它应该不远.
| 归档时间: |
|
| 查看次数: |
2215 次 |
| 最近记录: |