大规模ORM动态过滤

时间:2016-01-19 07:39:27

标签: .net orm massive

由于没有太多关于此的文档,有人可以判断是否存在动态过滤数据的方法,因为有很多过滤选项?

2 个答案:

答案 0 :(得分:1)

这不是最好在SQL中完成,而不是用字符串方法操作你的SQL吗?有许多选项解释here。其中最简单的如下......

select * from table1
where (col1 = :0 or :0 is null)
and (col2 = :1 or :1 is null)
and (col3 = :2 or :2 is null)
OPTION (RECOMPILE)

答案 1 :(得分:0)

如果有人有同样的问题,解决方案实际上非常简单,如果有更好的方法请告诉我:

        string query = "select * from pandas where panda_id = :0";
        List<object> parameters = new List<object>();
        parameters.Add(15162210);

        //  Apply filter
        if(shouldSearchByName)
        {
            query += " and name = :1";
            parameters.Add("Super Panda");
        }

        // Return the data
        return DB.Current.Query( query, args:parameters.ToArray());