c#、linq、dynamic query:リポジトリの外側で動的クエリをフィルタリングするコード
-
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"));
どういうわけか、私はデータがリポジトリから終了したときにDynamickeryの性質を失っています。そして、はい、私はあなたが通常選択した新しいcarclass {fieldname = m.fieldname、...}を行うカルクラス型を返す方法を解決していません
解決
動的クエリには次のことが必要です。
- ソースは
IQueryable<T>
(そうであればIEnumerable<T>
または同様に、電話してください.AsQueryable()
その上) - 動的クエリを実行したいコードで参照する追加のDLL
- 適切な
using
ローカルソースファイルの上部に設置される指令
これらの3つを確認すると、追加できる必要があります .Where(condition)
, .OrderBy(name)
, 、など
所属していません StackOverflow