I am trying to convert an old T-SQL query to LINQ. The old query is similar to:
Person 
(
    personId bigint,
    username varchar(18)
)
Phones 
(
    phoneId bigint,
    personId bigint,         [FK to Persons.personId]
    phoneNumber varchar(30),
    phoneType varchar(1)     [could be any of" "O", "H", 'Y" or a few others]
)
SELECT 
    person.personId,
    person.username,
    phone.phoneNumber
FROM
    Persons persons
LEFT JOIN 
    Phones phones ON person.personId = phones.personId
                  AND phones.phoneType IN ("O", "Y")
WHERE 
    person.username != ""
    AND person.ActualEndDate IS NOT NULL
How do I implement the AND phones.phoneType in ("O", "Y") clause in linq? I can do one at a time as in:
netids = (
    from person in Persons
    join phone in Phones
        on new {
            person.PersonId,
            phoneTypeAbbv = "Y"
        } equals new {
            phone.PersonId,
            phoneTypeAbbv = phone.PhoneTypeAbbv.ToUpper()
        } into phoneList
    from phoneListItem in phoneList.DefaultIfEmpty()
    where !person.username.Equals("")
          & !person.ActualEndDate.HasValue
    select new NetidToLync {
        PersonId = person.PersonId,
        Netid = person.username.Trim().ToLower(),
        Lync = phoneListItem.PhoneNumber.Trim().ToLower() ?? ""
    }
).ToList();
 
     
     
    