LINQ to SQL - левое внешнее соединение с несколькими условиями соединения

У меня есть следующий SQL, который я пытаюсь перевести на LINQ:

SELECT f.value
FROM period as p 
LEFT OUTER JOIN facts AS f ON p.id = f.periodid AND f.otherid = 17
WHERE p.companyid = 100

Я видел типичную реализацию левого внешнего соединения (т.е.into x from y in x.DefaultIfEmpty() и т.д.), но я не уверен, как ввести другое условие соединения (AND f.otherid = 17)

EDIT

ПочемуAND f.otherid = 17 часть условия JOIN вместо предложения WHERE? Так какf может не существовать для некоторых строк, и я все еще хочу, чтобы эти строки были включены. Если условие применяется в предложении WHERE, после JOIN - тогда я не получаю желаемого поведения.

К сожалению это:

from p in context.Periods
join f in context.Facts on p.id equals f.periodid into fg
from fgi in fg.DefaultIfEmpty()
where p.companyid == 100 && fgi.otherid == 17
select f.value

кажется эквивалентным этому:

SELECT f.value
FROM period as p 
LEFT OUTER JOIN facts AS f ON p.id = f.periodid 
WHERE p.companyid = 100 AND f.otherid = 17

что не совсем то, что я после.

Ответы на вопрос(5)

Ваш ответ на вопрос