System.LINQ двойное внутреннее соединение? - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь получить все 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...