【问题标题】:Build Predicate based on Filter values passed in根据传入的过滤器值构建谓词
【发布时间】:2014-01-16 23:53:27
【问题描述】:

我想过滤我的列表以用于报告目的,但我想让它尽可能动态,以便用户可以过滤 1 列或更多列。

我的想法是创建一个字典,然后将其传递给一个过滤掉相关记录的方法,但我现在对如何执行“动态”部分感到困惑。

这是我目前的代码到目前为止的样子,但它不起作用。

filters = {CourseId,2},{CourseDescription,Maths}

public IQueryable<Course> Filter(Dictionary<string,string> filters)
{
    var a = from s in context.Courses
                  select s;
    foreach (var filter in filters)
    {
        if(!string.IsNullOrEmpty(filter.Value))
        {
            a = a.Where(s => s./*filter.Key*/.ToUpper().Contains(/*filter.value*/.ToUpper()));
        }
    }
}

请有人协助并指出正确的方向,以便我可以正常工作。

谢谢。

【问题讨论】:

标签: c# predicate


【解决方案1】:

我最近刚刚使用http://www.albahari.com/nutshell/predicatebuilder.aspx 根据收到的标准动态构建一个谓词以与实体框架一起使用。效果很好。

【讨论】:

    猜你喜欢
    • 2021-04-13
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2015-02-09
    • 2015-07-22
    • 1970-01-01
    相关资源
    最近更新 更多