You can use expressions instead of Func and manipulate the Expression
to or instead of using or between funcs

On Thu, Oct 8, 2009 at 10:39 PM, Mike <[email protected]> wrote:
>
> I've been trying to create a dynamic linq query given an arbitrary
> number of where clauses like this:
>
>           //Predicate returning ingredients with name containing the
> keyword
>            Func<string, Func<Ingredient, bool>> buildKeywordPredicate
> =
>                (keyword) => ingredient => ingredient.Name.Contains
> (keyword);
>
>            //Chain 2 predicates together
>            Func<Func<Ingredient,bool>, Func<Ingredient, bool>,
> Func<Ingredient, bool>> chainPredicates =
>                (pred1, pred2) =>
>                    x => pred1(x) || pred2(x);
>
>            //Generate the complete filter from a list of keywords
>            Func<Ingredient,bool> filter = null;
>            foreach (var keyword in keywords) {
>                filter = filter == null
>                    ? buildKeywordPredicate(keyword)
>                    : chainPredicates(filter, buildKeywordPredicate
> (keyword));
>            }
>
>            return Session.Linq<Ingredient>().Where(filter);
>
> However nothing is returned and I can see that no where clauses are
> used in the generated SQL.
> I know this is possible to do with HQL but is it currently supported
> in Linq to NHibernate?
>
> Thanks, Mike
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to