Скажите, у меня есть два списка:
List<CanidateSkill> canidateSkills;
List<JobDesiredSkill> desiredSkills;
class CanidateSkill
{
public Guid CanidateId { get; set; }
public Guid SkillId { get; set; }
}
class JobDesiredSkill
{
public Guid JobId { get; set; }
public Guid SkillId { get; set; }
}
Как вы определяете, если:
По крайней мере один элемент в JobDesiredSkills содержится в CandidateSkills (соответствует SkillId)
Все элементы в JobDesiredSkills содержатся в CandidateSkills
Я пробовал это, но получаю эту ошибку: Невозможно создать постоянное значение типа. В этом контексте поддерживаются только примитивные типы (такие как Int32, String и Guid).
return from candidate in _db.Candidates
where (candidate.CandidateSkills.Any(c => job.JobDesiredSkills.Any(j => j.SkillId == c.SkillId)))
select candidate;
Я также пытался это сделать, но Contains ожидает объект JobDesiredSkill, но c является CandidateSkillObject.
return from candidate in _db.Candidates
where CandidateSkills.Any(c => JobDesiredSkills.Contains(c))
select candidate;
Спасибо