我试图从XY表中获取所有X. X是表,Y是表,XY是XREF表。
以下代码是我的尝试。但是我出于某种原因不能加倍加入?任何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();
}
ERROR:
CS1941 join子句中的一个表达式的类型是 不正确。调用“加入”时类型推断失败。
更新:
这是等效的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