2012-01-28 50 views
0

我們怎樣才能在EF做到這一點無關實體,過濾使用EF

Member member = db.Members.Find(id); 
vmJob.MatchJob = db.Jobs.Where(p=>p.Skills in (member.Skills)); 

它就像一個就業選配功能..其中,構件具有的技能和工作要求的技能。

在此先感謝。

回答

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))); 
+0

謝謝你們倆...... :) – roggss 2012-01-28 07:30:56

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成員的技能。

+0

嗨,..我不會對我的工作,而不是技能的集合..一個技能屬性,因爲作業可與多種技能.. 所以我就在列表行的錯誤(mj.Skill)。 tnx – roggss 2012-01-28 04:51:21