2010-03-23 120 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