c#、linq、dynamic query:リポジトリの外側で動的クエリをフィルタリングするコード

StackOverflow https://stackoverflow.com/questions/2497918

質問

リポジトリでこのようなことをする場合:

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), 、など

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top