2010-03-23 66 views
1

如果你在你的仓库是这样的:C#,LINQ中,动态查询:代码过滤库之外的动态查询

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

你设置的条件和值库之外:

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

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

您将如何使用动态查询对存储库之外的结果进行排序?

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

不知何故,当数据从存储库中退出时,我失去了DynamicQuery性质。是的,我还没有制定出如何返回CarClass类型,你通常会做一个选择新Carclass {字段名= m.fieldName,...}

回答

1

动态查询要求:

  • 的源IQueryable<T>(所以如果是IEnumerable<T>或类似的,只需拨打.AsQueryable()就可以了)
  • 一个额外的DLL在要执行动态查询
  • 适当using指令来到位在顶部的代码中引用的本地源文件

检查这三个,你应该能够添加.Where(condition).OrderBy(name)

+0

宾果。这就是深夜编程购买我的东西。 – 2010-03-24 05:04:57