首页 > 解决方案 > System.LINQ 双内连接?

问题描述

我正在尝试从 XY 表中获取所有 X。X 是表,Y 是表,XY 是外部参照表。

下面的代码是我的尝试。但是我由于某种原因不能双重加入?是否有任何 System.LINQ 专业人士能够帮助我了解 XREF 表在 System.LINQ 中的工作方式?

public async Task<List<FunctionModel>> GetFunctionsByTestCaseID(string pID, CancellationToken pCancellationToken)
{
    pCancellationToken.ThrowIfCancellationRequested();

    return await (from F in Context.Functions
        join TS in Context.TestSteps on F.ID equals TS.FunctionID
        join X in Context.XREF_TestCases_TestSteps on TS.ID equals X.TestStepID
        where X.TestCaseID == pID
        select F).ToListAsync();         
}

错误:

CS1941 连接子句中的表达式之一的类型不正确。对“加入”的调用中的类型推断失败。

更新:

这是等效的 SQL 语句,也许可以解决问题。

SELECT * FROM dbo.Functions F
INNER JOIN dbo.TestSteps TS ON TS.FunctionID = F.ID
INNER JOIN dbo.XREF_TestCases_TestSteps X ON X.TestStepID = TS.ID
WHERE X.TestCaseID = 1

标签: c#sqllinq

解决方案


推荐阅读