LINQ to SQL - Junção Externa à Esquerda com várias condições de junção

Eu tenho o seguinte SQL, que estou tentando traduzir para o 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

Eu vi a implementação típica da junção externa esquerda (ie.into x from y in x.DefaultIfEmpty() etc), mas não tenho certeza de como introduzir a outra condição de junção (AND f.otherid = 17)

EDITAR

Porque é oAND f.otherid = 17 parte condição do JOIN em vez de na cláusula WHERE? Porquef pode não existir para algumas linhas e ainda quero que essas linhas sejam incluídas. Se a condição for aplicada na cláusula WHERE, depois do JOIN, não obtenho o comportamento desejado.

Infelizmente isso:

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

parece ser equivalente a isso:

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

que não é bem o que eu sou depois.

questionAnswers(5)

yourAnswerToTheQuestion