我有以下代码...不能在谓词
examinerSpec.Predicate = examinerSpec.AndExpression(examinerSpec.Predicate,
centreTemp =>centreTemp.ExaminerCentreAssociations.Any(
examinerTemp =>examinerTemp.CentreRegionMaps.CentreNumber.
Contains(**currentCentreNumber**) &&
examinerTemp.CentreRegionMaps.Active == true &&
examinerTemp.DateStart <= DateTime.Now &&
(!examinerTemp.DateEnd.HasValue ||
examinerTemp.DateEnd.Value >= DateTime.Now)));
CurrentCentreNumber中包含使用的IEnumerable
examinerSpec.Predicate = examinerSpec.AndExpression(examinerSpec.Predicate,
centreTemp =>
centreTemp.ExaminerCentreAssociations.Any(
examinerTemp =>
examinerTemp.CentreRegionMaps.CentreNumber.
Any(currentCentreNumber) &&
examinerTemp.CentreRegionMaps.Active == true &&
examinerTemp.DateStart <= DateTime.Now &&
(!examinerTemp.DateEnd.HasValue ||
examinerTemp.DateEnd.Value >= DateTime.Now)));
不起作用。编译器告诉我'该方法的类型参数不能被推断'。
我确实需要在IEnumerable参数上过滤examinerTemp.CentreRegionMaps.CentreNumber。
非常感谢您的任何帮助。
你在寻找类似的“IN”功能的东西吗? http://stackoverflow.com/questions/959752/where-in-clause-in-linq – 2013-04-10 14:47:15
好的,但我不知道如何将它集成到示例中的谓词代码中。 – 2013-04-10 14:57:13
你必须扭转它们。你必须说'listOfCurrentCenterNumbers.Contains(examinerTemp.CentreRegionMaps.CentreNumber);' – 2013-04-10 14:59:42