views:

337

answers:

1

If you do something like this in your Repository:

IQueryable<CarClass> GetCars(string condition, params object[] values) {
    return db.Cars.Where(condition, values);
}

And you set the condition and values outside of the repository:

string condition = "CarMake == @Make";
object[] values = new string[] { Make = "Ford" };

var result = myRepo.GetCars( condition, values);

How would you be able to sort the result outside of the repository with Dynamic Query?

return View( "myView", result.OrderBy("Price"));

Somehow I am losing the DynamicQuery nature when the data exits from the repository. And yes, I haven't worked out how to return the CarClass type where you would normally do a Select new Carclass { fieldName = m.fieldName, ... }

+1  A: 

Dynamic query requires:

  • the source be IQueryable<T> (so if it is IEnumerable<T> or similar, just call .AsQueryable() on it)
  • an extra dll to be referenced in the code that wants to perform dynamic query
  • the appropriate using directives to be in place at the top of the local source file

Check those three, and you should be able to add .Where(condition), .OrderBy(name), etc

Marc Gravell
Bingo. That's what late night programming buys me.
Dr. Zim