我们如何在EF中执行此操作,
Member member = db.Members.Find(id);
vmJob.MatchJob = db.Jobs.Where(p=>p.Skills in (member.Skills));
它就像一个工作匹配功能..其中会员有技能,工作需要技能。
提前致谢。
答案 0 :(得分:0)
尝试这样的事情:
Member member = db.Members.Find(id);
var memberSkills = member.Skills.Select(ms=>ms.SkillId).ToArray(); //assumes a skill has a skill id.
var matchJobs = db.Jobs.Where(mj=> memberSkills.Contains(mj.Skill));
那应该返回job.Skills包含会员技能的工作。
答案 1 :(得分:0)
djcohen66很接近。当两者都是集合时,您可以在候选集合上使用.Any
。
var member = db.Members.Find(id);
var memberSkillIds = member.Skills.Select(ms => ms.SkillId).ToList();
var jobs = db.Jobs.Where(j => j.Skills.Any(js => memberSkillIds.Contains(js.SkillId)));