Похоже на соединение со мной:
var query = from navigator in db.NavigatorUserFieldProperties
where navigator.UserId == "albert"
join field in db.NavigatorEntityFieldMasters
.Where(f => f.EntityId == 1 && f.UseType == 0)
on navigator.FieldId equals field.FieldId
select navigator;
Обратите внимание, что это будет возвращать одно и то же значение несколько раз, если есть несколько полей с одинаковым идентификатором - но я подозреваю, что это не так.
Вы могли бы сделать более буквальный перевод, подобный этому:
var query = from navigator in db.NavigatorUserFieldProperties
where navigator.UserId == "albert" &&
db.NavigatorEntityFieldMasters
.Where(f => f.EntityId == 1 && f.UseType == 0)
.select(f => f.FieldId)
.Contains(navigator.FieldId)
select navigator;
... и что может закончиться переводом на тот же SQL ... но я бы лично пошел с объединением.