30. september 2008 - 12:34Der er
4 kommentarer og 1 løsning
Where In statement i LINQ
jeg har følgende statement:
var CompetentCrew = db.CrewMemberFunctions.Where(f => f.FunctionID == Curfunc.ID); var GetCompetentCrew = db.CrewMembers.Where(f => db.CrewMembers.Contains(CompetentCrew));
Det går altså ud på, først at hente fra crewmemberfunctions poster som matcher Curfunc.id (currentfunction id) og dernæst bruge den liste af ID'er i en in where clause, men hvordan får jeg skrevet den in where clause ordentligt. Lige nu er CompetentCrew ikke det rigtige format.
problemet er, at da det ikke er et array kan den ikke forstå det. Det her er min noget snørklede løsning:
var CompotentCrewIDs = from f in db.CrewMemberFunctions where f.FunctionID == int.Parse(funcDD.ID) select f; var componentCrewIDsArr = new int[CompotentCrewIDs.Count()]; int i = 0; foreach (CrewMemberFunction crewMembFunc in CompotentCrewIDs) { componentCrewIDsArr[i] = crewMembFunc.CrewMemberID; }
var compotentCrewMembers = db.CrewMembers.Where(f => componentCrewIDsArr.Contains(f.ID));
var CompotentCrewIDs = from f in db.CrewMemberFunctions where f.FunctionID == int.Parse(funcDD.ID) select f; var componentCrewIDsArr = (from crewMembFunc in CompotentCrewIDs select CrewMemberID).ToArray(); var compotentCrewMembers = db.CrewMembers.Where(f => componentCrewIDsArr.Contains(f.ID));
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.