2013-04-10 75 views
2

我有以下代码...不能在谓词

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 (currentCentreNumber)是一个字符串。我想使用IEnumerable centreNumbers。我尝试了以下...

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。

非常感谢您的任何帮助。

+0

你在寻找类似的“IN”功能的东西吗? http://stackoverflow.com/questions/959752/where-in-clause-in-linq – 2013-04-10 14:47:15

+0

好的,但我不知道如何将它集成到示例中的谓词代码中。 – 2013-04-10 14:57:13

+0

你必须扭转它们。你必须说'listOfCurrentCenterNumbers.Contains(examinerTemp.CentreRegionMaps.CentreNumber);' – 2013-04-10 14:59:42

回答

0

这项工作?很难推断出你的类型......

examinerSpec.Predicate = examinerSpec.AndExpression 
    (examinerSpec.Predicate, 
     centreTemp => 
      centreTemp.ExaminerCentreAssociations.Any(examinerTemp => 
       examinerTemp.CentreRegionMaps.CentreNumber.Any(cn => cn == currentCentreNumber) && 
       examinerTemp.CentreRegionMaps.Active == true && 
       examinerTemp.DateStart <= DateTime.Now && 
       (!examinerTemp.DateEnd.HasValue || examinerTemp.DateEnd.Value >= DateTime.Now) 
      ) 
    ); 
+0

谢谢,但给了错误:无法将'=='运算符应用于char和System.Collections.ObjectModel.Collection 的操作数,如下语句cn => cn == currentCentreNumber。它认为cn是char类型的! – 2013-04-10 15:39:55

+0

什么是CentreNumber?一个字符串? – Shlomo 2013-04-10 15:52:35