Thursday 15 January 2015

c# - 'The parameter 'f' was not bound in the specified LINQ to Entities query expression' -



c# - 'The parameter 'f' was not bound in the specified LINQ to Entities query expression' -

using ef 6. can tell me doing wrong?

public list<searchresult> searchdocuments(list<searchcriteria> searchcriterias) { list<searchresult> results = new list<searchresult>(); var fieldsettings = loadcoordinatesystemfieldsettings(searchcriterias); using (var context = createcontext()) { var tractsquery = predicatebuilder.false<v_uploadbytract_activeuploads>(); foreach (var searchcriteria in searchcriterias) { var querybuilder = predicatebuilder.true<v_uploadbytract_activeuploads>(); // tractsquery if (searchcriteria.stateapi.hasvalue) querybuilder = querybuilder.and(a => a.stateapi == searchcriteria.stateapi.value); if (searchcriteria.countyapi.hasvalue) querybuilder = querybuilder.and(a => a.countyapi == searchcriteria.countyapi.value); // ... // ... many more similar if-ands // ... tractsquery = tractsquery.or(querybuilder); } var searchquery = context.v_uploadbytract_activeuploads.asexpandable().where(tractsquery).tolist(); //.select(a => searchresult.create(a)); //results.addrange(searchquery.tolist()); } homecoming results; } public static class predicatebuilder { public static expression<func<t, bool>> true<t>() { homecoming f => true; } public static expression<func<t, bool>> false<t>() { homecoming f => false; } public static expression<func<t, bool>> or<t>(this expression<func<t, bool>> expr1, expression<func<t, bool>> expr2) { var invokedexpr = expression.invoke(expr2, expr1.parameters.cast<expression>()); homecoming expression.lambda<func<t, bool>> (expression.orelse(expr1.body, invokedexpr), expr1.parameters); } public static expression<func<t, bool>> and<t>(this expression<func<t, bool>> expr1, expression<func<t, bool>> expr2) { var invokedexpr = expression.invoke(expr2, expr1.parameters.cast<expression>()); homecoming expression.lambda<func<t, bool>> (expression.andalso(expr1.body, invokedexpr), expr1.parameters); } }

quetzalcoatl answer. other post did it. else had come across asexpandable() , overlooked 1 thinking it's talking same. after reading post , re-reading discussion, worked. since post shows "comment", unable mark answer. suggestions on how consolidate nasty ifs.

c# predicatebuilder entities: parameter 'f' not bound in specified linq entities query expression

c# entity-framework-6.1

No comments:

Post a Comment