Я пытаюсь получить все X из таблицы XY. 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();
}
ОШИБКА:
CS1941 Тип одного из выражений в предложении соединения:
неверен. Ошибка вывода типа при вызове «Join».
UPDATE:
Вот эквивалентный оператор 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