对此有所卡住。基本上,我有一个方法要返回一个可以用作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/

10-15 11:46