linq-to-sql处理动态查询?

时间:2011-05-07 18:51:11

标签: c# linq

我正在构建一个动态查询。基本上,函数接收一个对象MyParams,其属性是参数;我正在基于MyParams对象创建Where子句并返回匿名类型列表。

那么,L2SQL是否支持创建动态查询?我有一个已经适用于其他查询的数据上下文。根据参数的不同,我有时需要访问某些表,所以我还需要动态编写From子句,还是只包含所有表并只关注where子句?

感谢。

2 个答案:

答案 0 :(得分:3)

如果您愿意,可以执行以下操作:

        var baseQuery = dataAccess.Table1.Where(arg => arg.Field1 = 1);

        if (parameter[1] = true)
        {
            baseQuery = baseQuery.Where(arg => arg.Field2 = 'Test');
        }

        if (parameter[2] = true)
        {
            baseQuery = 
                from x in baseQuery
                join y in dataAccess.Table2 on
                    x.Id equals y.Id
                where y.Field3 = 'Something'
                select x;
        }

        return baseQuery.ToList();

答案 1 :(得分:1)

您应该能够将我的answer用于其他问题。你的问题不是一个完全复制你的问题更通用,但解决问题的原因完全相同。