我正在为 LLBL 使用 Linq 语法。我需要多次加入特定表。我有一个确实有效的查询,但我正在努力让它更快。我有原始 SQL,但我不确定如何在 Linq 中编码,或者我什至可以。这是一个简化的示例:
SELECT Parent.SomeColumn
FROM
ParentTable Parent
INNER JOIN ChildTable Child1 ON Child1.ParentID = Parent.ID
INNER JOIN ChildTable Child2 ON Child2.ParentID = Parent.ID
WHERE
Child1.TypeColumn = 'Type1'
AND Child2.TypeColumn = 'Type2'
这很容易做到,但我想要一些可以处理 Child3、Child4 等的东西。换句话说,我不知道编译时 ChildTable 连接的数量。
我的原始代码查询了 ParentTable,然后每次我需要加入时都在 ChildTable 上执行 EXISTS 子查询。它有效,但我看到的是上面的查询将需要大约 1/4 的时间来执行。我有一些实时的 UI 更新,如果我能完成这项工作,将会有显着的改进。
我知道如果我在代码中构建 SQL 查询,这将非常容易,但我真的很想依靠 LLBL 为我生成它。