对此有所卡住。基本上,我有一个方法要返回一个可以用作Where条件的谓词表达式。
我认为我需要执行的操作与此相似:http://msdn.microsoft.com/en-us/library/bb882637.aspx,但是我对需要执行的操作有些困惑。
方法:
private static Expression<Func<Conference, bool>> GetSearchPredicate(string keyword, int? venueId, string month, int year)
{
if (!String.IsNullOrEmpty(keyword))
{
// Want the equivilent of .Where(x => (x.Title.Contains(keyword) || x.Description.Contains(keyword)));
}
if (venueId.HasValue)
{
// Some other predicate added...
}
return ??
}
用法示例:
var predicate = GetSearchPreducate(a,b,c,d);
var x = Conferences.All().Where(predicate);
我需要这种分离,以便可以将谓词传递到存储库中并在其他地方使用。
最佳答案
您是否 checkout PredicateBuilder
关于c# - 如何根据用户输入动态构建和返回linq谓词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3932542/