C# mvc3中的谓词生成器

C# mvc3中的谓词生成器,c#,linq,search,predicatebuilder,C#,Linq,Search,Predicatebuilder,我已经和谓词生成器混了两天了,虽然每个网站都说由于某种原因(很可能是我的错)它非常容易实现,但我无法让它工作。我决定使用谓词生成器,因为我知道要搜索哪些列,并且它们都在同一个表中。我所要做的就是在多个列中搜索可能存在于这三列中任何一列中的关键字。我已经读到谓词生成器可以很容易地完成这项工作,但是教程显然没有说明我的原因。下面是我目前所拥有的,如果有人能给我指出正确的方向,我将不胜感激。现在,当我搜索时,它没有做任何事情,它只是返回所有记录。谢谢你的帮助 if (!String.IsNullOrE

我已经和谓词生成器混了两天了,虽然每个网站都说由于某种原因(很可能是我的错)它非常容易实现,但我无法让它工作。我决定使用谓词生成器,因为我知道要搜索哪些列,并且它们都在同一个表中。我所要做的就是在多个列中搜索可能存在于这三列中任何一列中的关键字。我已经读到谓词生成器可以很容易地完成这项工作,但是教程显然没有说明我的原因。下面是我目前所拥有的,如果有人能给我指出正确的方向,我将不胜感激。现在,当我搜索时,它没有做任何事情,它只是返回所有记录。谢谢你的帮助

if (!String.IsNullOrEmpty(searchString))
            {


                var predicate = PredicateBuilder.True<iamp_mapping>();



                predicate = predicate.Or(p => p.PA.Contains(searchString));
                predicate = predicate.Or(p => p.MAJOR_PROGRAM.Contains(searchString));
                predicate = predicate.Or(p => p.INVESTMENT_AREA.Contains(searchString));

            }
if(!String.IsNullOrEmpty(searchString))
{
var predicate=PredicateBuilder.True();
谓词=谓词。或(p=>p.PA.Contains(searchString));
predicate=predicate.Or(p=>p.MAJOR_PROGRAM.Contains(searchString));
谓词=谓词。或(p=>p.INVESTMENT_AREA.Contains(searchString));
}
试试看

var predicate=PredicateBuilder.False();

由于您正在使用“或”连接。

如果您需要更多代码,请告诉我。我尝试添加False,但没有成功,在点击搜索后,它会不断返回所有记录
var predicate = PredicateBuilder.False<iamp_mapping>();