RelationPredicateBucket Filter Grouping

Posts   
 
    
Posts: 21
Joined: 07-Jul-2008
# Posted on: 18-Nov-2008 17:10:44   

Who i Group Params in Where Clause (Filter / RelationPredicateBucket.PredicateExpression)

My CODE

            ViewSearchWordsTypedView words = new ViewSearchWordsTypedView();

            using (DataAccessAdapter adapter = new DataAccessAdapter())
            {
                RelationPredicateBucket filter = new RelationPredicateBucket();
                filter.PredicateExpression.AddWithAnd(ViewSearchWordsFields.Nome % ("%" + p_text + "%"));

                foreach (ViewSearchWordsFilterBy item in filterBy.Selected())
                    filter.PredicateExpression.AddWithOr(ViewSearchWordsFields.Tipo == item.GetDescription());

                adapter.FetchTypedView(words.GetFieldsInfo(), words, filter, false);
            }
            return words;

But Makes Query:: (INCORRECT)

SELECT
    DISTINCT [JrDiesel].[dbo].[ViewSearchWords].[Cod],
    [JrDiesel].[dbo].[ViewSearchWords].[Nome],
    [JrDiesel].[dbo].[ViewSearchWords].[Tipo]
FROM
    [JrDiesel].[dbo].[ViewSearchWords]
WHERE
    (
        [JrDiesel].[dbo].[ViewSearchWords].[Nome] LIKE @Nome1 OR
        [JrDiesel].[dbo].[ViewSearchWords].[Tipo] = @Tipo2 OR
        [JrDiesel].[dbo].[ViewSearchWords].[Tipo] = @Tipo3 OR
        [JrDiesel].[dbo].[ViewSearchWords].[Tipo] = @Tipo4
    )

I Need Make This Query:: (CORRECT)

SELECT
    DISTINCT [JrDiesel].[dbo].[ViewSearchWords].[Cod],
    [JrDiesel].[dbo].[ViewSearchWords].[Nome],
    [JrDiesel].[dbo].[ViewSearchWords].[Tipo]
FROM
    [JrDiesel].[dbo].[ViewSearchWords]
WHERE
    (
        [JrDiesel].[dbo].[ViewSearchWords].[Nome] LIKE @Nome1 AND
            (
                [JrDiesel].[dbo].[ViewSearchWords].[Tipo] = @Tipo2 OR
                [JrDiesel].[dbo].[ViewSearchWords].[Tipo] = @Tipo3 OR
                [JrDiesel].[dbo].[ViewSearchWords].[Tipo] = @Tipo4
            )
    )

LLBLGen 2.6 Final Registered Adapter Mode Sql Server 2005 .Net Framework 3.5

Attachments
Filename File size Added on Approval
clip_image001.jpg 21,344 18-Nov-2008 17:10.58 Approved
Posts: 21
Joined: 07-Jul-2008
# Posted on: 18-Nov-2008 17:55:15   

Solution:


            ViewSearchWordsTypedView words = new ViewSearchWordsTypedView();

            using (DataAccessAdapter adapter = new DataAccessAdapter())
            {
                IPredicateExpression _filterTipos = new PredicateExpression();
                foreach (ViewSearchWordsFilterBy item in filterBy.Selected())
                    _filterTipos.AddWithOr(ViewSearchWordsFields.Tipo == item.GetDescription());

                RelationPredicateBucket filter = new RelationPredicateBucket();
                filter.PredicateExpression.AddWithAnd(ViewSearchWordsFields.Nome % ("%" + p_text + "%"));
                filter.PredicateExpression.AddWithAnd(_filterTipos);

                adapter.FetchTypedView(words.GetFieldsInfo(), words, filter, false);
            }
            return words;

Closed.