C# PredicateBuilder Entities: The parameter 'f' was not bound in the specified LINQ to Entities quer

Posted by Neothor on Stack Overflow See other posts from Stack Overflow or by Neothor
Published on 2010-06-01T06:59:31Z Indexed on 2010/06/01 7:03 UTC
Read the original article Hit count: 979

I needed to build a dynamic filter and I wanted to keep using entities. Because of this reason I wanted to use the PredicateBuilder from albahari.

I created the following code:

var invoerDatums = PredicateBuilder.True<OnderzoeksVragen>();
var inner = PredicateBuilder.False<OnderzoeksVragen>();

foreach (var filter in set.RapportInvoerFilter.ToList())
{
    if(filter.IsDate)
    {
        var date = DateTime.Parse(filter.Waarde);
        invoerDatums = invoerDatums.Or(o => o.Van >= date && o.Tot <= date);
    }
    else
    {
        string temp = filter.Waarde;
        inner = inner.Or(o => o.OnderzoekType == temp);
    }
}

invoerDatums = invoerDatums.And(inner);
var onderzoeksVragen = entities.OnderzoeksVragen
                               .AsExpandable()
                               .Where(invoerDatums)
                               .ToList();

When I ran the code there was only 1 filter which wasn't a date filter. So only the inner predicate was filled. When the predicate was executed I got the following error.

The parameter 'f' was not bound in the specified LINQ to Entities query expression.

While searching for an answer I found the following page. But this is already implemented in the LINQKit.

Does anyone else experienced this error and know how to solve it?

© Stack Overflow or respective owner

Related posts about linq-to-entities

Related posts about c#4.0