c#,linq,动态查询:代码用于过滤存储库之外的动态查询
-
21-09-2019 - |
题
如果您在存储库中执行这样的事情:
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"));
当数据从存储库退出时,我以某种方式失去了动态性质。是的,我还没有弄清楚如何返回通常要进行选择的carclass类型{fieldName = m.fieldname,...}
解决方案
动态查询需要:
- 来源是
IQueryable<T>
(所以是IEnumerable<T>
或类似,只需打电话.AsQueryable()
在上面) - 代码中要引用的额外DLL,希望执行动态查询
- 适当的
using
指令在本地源文件的顶部到位
检查这三个,您应该能够添加 .Where(condition)
, .OrderBy(name)
, , ETC
不隶属于 StackOverflow